~ubuntu-branches/debian/jessie/web2py/jessie

« back to all changes in this revision

Viewing changes to applications/examples/static/epydoc/web2py.gluon.sanitizer-pysrc.html

  • Committer: Package Import Robot
  • Author(s): José L. Redrejo Rodríguez
  • Date: 2011-11-04 10:12:01 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20111104101201-ym8q3030ik8sc10u
Tags: 1.99.2.1-1
* Updated upstream sources with real 1.99.2 version
* Ensure python-gtk2 is not needed to run web2py, fixing 
  debian/patches/gtk_gui (Closes: #646931)
* Refreshed debian/patches/avoid_updating patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"> </tt>
79
79
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
80
80
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">htmllib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">HTMLParser</tt> </tt>
81
 
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">escape</tt> </tt>
 
81
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Method web2py.gluon.dal.DatabaseStoredFile.escape()=web2py.gluon.dal.DatabaseStoredFile-class.html#escape"><a title="web2py.gluon.dal.DatabaseStoredFile.escape" class="py-name" href="#" onclick="return doclink('link-0', 'escape', 'link-0');">escape</a></tt> </tt>
82
82
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">urlparse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
83
 
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Method web2py.gluon.dal.Field.formatter()=web2py.gluon.dal.Field-class.html#formatter,Method web2py.gluon.validators.IS_DATE.formatter()=web2py.gluon.validators.IS_DATE-class.html#formatter,Method web2py.gluon.validators.IS_DATETIME.formatter()=web2py.gluon.validators.IS_DATETIME-class.html#formatter,Method web2py.gluon.validators.IS_DECIMAL_IN_RANGE.formatter()=web2py.gluon.validators.IS_DECIMAL_IN_RANGE-class.html#formatter,Method web2py.gluon.validators.IS_EMPTY_OR.formatter()=web2py.gluon.validators.IS_EMPTY_OR-class.html#formatter,Method web2py.gluon.validators.IS_FLOAT_IN_RANGE.formatter()=web2py.gluon.validators.IS_FLOAT_IN_RANGE-class.html#formatter,Method web2py.gluon.validators.Validator.formatter()=web2py.gluon.validators.Validator-class.html#formatter"><a title="web2py.gluon.dal.Field.formatter
 
83
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Method web2py.gluon.dal.Field.formatter()=web2py.gluon.dal.Field-class.html#formatter,Method web2py.gluon.validators.IS_DATE.formatter()=web2py.gluon.validators.IS_DATE-class.html#formatter,Method web2py.gluon.validators.IS_DATETIME.formatter()=web2py.gluon.validators.IS_DATETIME-class.html#formatter,Method web2py.gluon.validators.IS_DECIMAL_IN_RANGE.formatter()=web2py.gluon.validators.IS_DECIMAL_IN_RANGE-class.html#formatter,Method web2py.gluon.validators.IS_EMPTY_OR.formatter()=web2py.gluon.validators.IS_EMPTY_OR-class.html#formatter,Method web2py.gluon.validators.IS_FLOAT_IN_RANGE.formatter()=web2py.gluon.validators.IS_FLOAT_IN_RANGE-class.html#formatter,Method web2py.gluon.validators.Validator.formatter()=web2py.gluon.validators.Validator-class.html#formatter"><a title="web2py.gluon.dal.Field.formatter
84
84
web2py.gluon.validators.IS_DATE.formatter
85
85
web2py.gluon.validators.IS_DATETIME.formatter
86
86
web2py.gluon.validators.IS_DECIMAL_IN_RANGE.formatter
87
87
web2py.gluon.validators.IS_EMPTY_OR.formatter
88
88
web2py.gluon.validators.IS_FLOAT_IN_RANGE.formatter
89
 
web2py.gluon.validators.Validator.formatter" class="py-name" href="#" onclick="return doclink('link-0', 'formatter', 'link-0');">formatter</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">AbstractFormatter</tt> </tt>
 
89
web2py.gluon.validators.Validator.formatter" class="py-name" href="#" onclick="return doclink('link-1', 'formatter', 'link-1');">formatter</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">AbstractFormatter</tt> </tt>
90
90
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">htmlentitydefs</tt> <tt class="py-keyword">import</tt> <tt class="py-name">entitydefs</tt> </tt>
91
 
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Method web2py.gluon.dal.Rows.xml()=web2py.gluon.dal.Rows-class.html#xml,Method web2py.gluon.html.A.xml()=web2py.gluon.html.A-class.html#xml,Method web2py.gluon.html.CODE.xml()=web2py.gluon.html.CODE-class.html#xml,Method web2py.gluon.html.DIV.xml()=web2py.gluon.html.DIV-class.html#xml,Method web2py.gluon.html.FORM.xml()=web2py.gluon.html.FORM-class.html#xml,Method web2py.gluon.html.HTML.xml()=web2py.gluon.html.HTML-class.html#xml,Method web2py.gluon.html.INPUT.xml()=web2py.gluon.html.INPUT-class.html#xml,Method web2py.gluon.html.MARKMIN.xml()=web2py.gluon.html.MARKMIN-class.html#xml,Method web2py.gluon.html.MENU.xml()=web2py.gluon.html.MENU-class.html#xml,Method web2py.gluon.html.P.xml()=web2py.gluon.html.P-class.html#xml,Method web2py.gluon.html.SCRIPT.xml()=web2py.gluon.html.SCRIPT-class.html#xml,Method web2py.gluon.html.STYLE.xml()=web2py.gluon.html.STYLE-class.html#xml,Method web2py.gluon.html.XHTML.xml()=web2py.gluon.html.XHTML-class.html#xml,Method web2py.gluon.html.XML.xml()=web2py.gluon.html.XML-class.html#xml,Method web2py.gluon.html.XmlComponent.xml()=web2py.gluon.html.XmlComponent-class.html#xml,Method web2py.gluon.languages.lazyT.xml()=web2py.gluon.languages.lazyT-class.html#xml,Function web2py.gluon.serializers.xml()=web2py.gluon.serializers-module.html#xml,Method web2py.gluon.tools.Recaptcha.xml()=web2py.gluon.tools.Recaptcha-class.html#xml,Method web2py.gluon.tools.Service.xml()=web2py.gluon.tools.Service-class.html#xml"><a title="web2py.gluon.dal.Rows.xml
 
91
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Method web2py.gluon.dal.Rows.xml()=web2py.gluon.dal.Rows-class.html#xml,Method web2py.gluon.html.A.xml()=web2py.gluon.html.A-class.html#xml,Method web2py.gluon.html.CODE.xml()=web2py.gluon.html.CODE-class.html#xml,Method web2py.gluon.html.DIV.xml()=web2py.gluon.html.DIV-class.html#xml,Method web2py.gluon.html.FORM.xml()=web2py.gluon.html.FORM-class.html#xml,Method web2py.gluon.html.HTML.xml()=web2py.gluon.html.HTML-class.html#xml,Method web2py.gluon.html.INPUT.xml()=web2py.gluon.html.INPUT-class.html#xml,Method web2py.gluon.html.MARKMIN.xml()=web2py.gluon.html.MARKMIN-class.html#xml,Method web2py.gluon.html.MENU.xml()=web2py.gluon.html.MENU-class.html#xml,Method web2py.gluon.html.P.xml()=web2py.gluon.html.P-class.html#xml,Method web2py.gluon.html.SCRIPT.xml()=web2py.gluon.html.SCRIPT-class.html#xml,Method web2py.gluon.html.STYLE.xml()=web2py.gluon.html.STYLE-class.html#xml,Method web2py.gluon.html.XHTML.xml()=web2py.gluon.html.XHTML-class.html#xml,Method web2py.gluon.html.XML.xml()=web2py.gluon.html.XML-class.html#xml,Method web2py.gluon.html.XmlComponent.xml()=web2py.gluon.html.XmlComponent-class.html#xml,Method web2py.gluon.languages.lazyT.xml()=web2py.gluon.languages.lazyT-class.html#xml,Function web2py.gluon.serializers.xml()=web2py.gluon.serializers-module.html#xml,Method web2py.gluon.tools.Recaptcha.xml()=web2py.gluon.tools.Recaptcha-class.html#xml,Method web2py.gluon.tools.Service.xml()=web2py.gluon.tools.Service-class.html#xml"><a title="web2py.gluon.dal.Rows.xml
92
92
web2py.gluon.html.A.xml
93
93
web2py.gluon.html.CODE.xml
94
94
web2py.gluon.html.DIV.xml
106
106
web2py.gluon.languages.lazyT.xml
107
107
web2py.gluon.serializers.xml
108
108
web2py.gluon.tools.Recaptcha.xml
109
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-1', 'xml', 'link-1');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">sax</tt><tt class="py-op">.</tt><tt class="py-name">saxutils</tt> <tt class="py-keyword">import</tt> <tt class="py-name">quoteattr</tt> </tt>
 
109
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-2', 'xml', 'link-2');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">sax</tt><tt class="py-op">.</tt><tt class="py-name">saxutils</tt> <tt class="py-keyword">import</tt> <tt class="py-name">quoteattr</tt> </tt>
110
110
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
111
111
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'sanitize'</tt><tt class="py-op">]</tt> </tt>
112
112
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
114
114
<a name="xssescape"></a><div id="xssescape-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="xssescape-toggle" onclick="return toggle('xssescape');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer-module.html#xssescape">xssescape</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
115
115
</div><div id="xssescape-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="xssescape-expanded"><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-docstring">"""Gets rid of &lt; and &gt; and &amp; and, for good measure, :"""</tt> </tt>
116
116
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
117
 
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">escape</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">quote</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#58;'</tt><tt class="py-op">)</tt> </tt>
 
117
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-3" class="py-name"><a title="web2py.gluon.dal.DatabaseStoredFile.escape" class="py-name" href="#" onclick="return doclink('link-3', 'escape', 'link-0');">escape</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">quote</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#58;'</tt><tt class="py-op">)</tt> </tt>
118
118
</div><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
119
119
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
120
120
<a name="XssCleaner"></a><div id="XssCleaner-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="XssCleaner-toggle" onclick="return toggle('XssCleaner');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html">XssCleaner</a><tt class="py-op">(</tt><tt class="py-base-class">HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
142
142
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">strip_disallowed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
143
143
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
144
144
</div><div id="XssCleaner.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.__init__-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"> </tt>
145
 
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">HTMLParser</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method web2py.gluon.cache.Cache.__init__()=web2py.gluon.cache.Cache-class.html#__init__,Method web2py.gluon.cache.CacheAbstract.__init__()=web2py.gluon.cache.CacheAbstract-class.html#__init__,Method web2py.gluon.cache.CacheInRam.__init__()=web2py.gluon.cache.CacheInRam-class.html#__init__,Method web2py.gluon.cache.CacheOnDisk.__init__()=web2py.gluon.cache.CacheOnDisk-class.html#__init__,Method web2py.gluon.compileapp.LoadFactory.__init__()=web2py.gluon.compileapp.LoadFactory-class.html#__init__,Method web2py.gluon.custom_import._DateTrackerImporter.__init__()=web2py.gluon.custom_import._DateTrackerImporter-class.html#__init__,Method web2py.gluon.custom_import._Web2pyImporter.__init__()=web2py.gluon.custom_import._Web2pyImporter-class.html#__init__,Method web2py.gluon.dal.BaseAdapter.__init__()=web2py.gluon.dal.BaseAdapter-class.html#__init__,Method web2py.gluon.dal.CouchDBAdapter.__init__()=web2py.gluon.dal.CouchDBAdapter-class.html#__init__,Method web2py.gluon.dal.CubridAdapter.__init__()=web2py.gluon.dal.CubridAdapter-class.html#__init__,Method web2py.gluon.dal.DAL.__init__()=web2py.gluon.dal.DAL-class.html#__init__,Method web2py.gluon.dal.DB2Adapter.__init__()=web2py.gluon.dal.DB2Adapter-class.html#__init__,Method web2py.gluon.dal.DatabaseStoredFile.__init__()=web2py.gluon.dal.DatabaseStoredFile-class.html#__init__,Method web2py.gluon.dal.Expression.__init__()=web2py.gluon.dal.Expression-class.html#__init__,Method web2py.gluon.dal.Field.__init__()=web2py.gluon.dal.Field-class.html#__init__,Method web2py.gluon.dal.FireBirdAdapter.__init__()=web2py.gluon.dal.FireBirdAdapter-class.html#__init__,Method web2py.gluon.dal.FireBirdEmbeddedAdapter.__init__()=web2py.gluon.dal.FireBirdEmbeddedAdapter-class.html#__init__,Method web2py.gluon.dal.GAEDecimalProperty.__init__()=web2py.gluon.dal.GAEDecimalProperty-class.html#__init__,Method web2py.gluon.dal.GAEF.__init__()=web2py.gluon.dal.GAEF-class.html#__init__,Method web2py.gluon.dal.GoogleDatastoreAdapter.__init__()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#__init__,Method web2py.gluon.dal.GoogleSQLAdapter.__init__()=web2py.gluon.dal.GoogleSQLAdapter-class.html#__init__,Method web2py.gluon.dal.InformixAdapter.__init__()=web2py.gluon.dal.InformixAdapter-class.html#__init__,Method web2py.gluon.dal.IngresAdapter.__init__()=web2py.gluon.dal.IngresAdapter-class.html#__init__,Method web2py.gluon.dal.JDBCPostgreSQLAdapter.__init__()=web2py.gluon.dal.JDBCPostgreSQLAdapter-class.html#__init__,Method web2py.gluon.dal.JDBCSQLiteAdapter.__init__()=web2py.gluon.dal.JDBCSQLiteAdapter-class.html#__init__,Method web2py.gluon.dal.MSSQLAdapter.__init__()=web2py.gluon.dal.MSSQLAdapter-class.html#__init__,Method web2py.gluon.dal.MongoDBAdapter.__init__()=web2py.gluon.dal.MongoDBAdapter-class.html#__init__,Method web2py.gluon.dal.MySQLAdapter.__init__()=web2py.gluon.dal.MySQLAdapter-class.html#__init__,Method web2py.gluon.dal.OracleAdapter.__init__()=web2py.gluon.dal.OracleAdapter-class.html#__init__,Method web2py.gluon.dal.PostgreSQLAdapter.__init__()=web2py.gluon.dal.PostgreSQLAdapter-class.html#__init__,Method web2py.gluon.dal.Query.__init__()=web2py.gluon.dal.Query-class.html#__init__,Method web2py.gluon.dal.Rows.__init__()=web2py.gluon.dal.Rows-class.html#__init__,Method web2py.gluon.dal.SAPDBAdapter.__init__()=web2py.gluon.dal.SAPDBAdapter-class.html#__init__,Method web2py.gluon.dal.SQLALL.__init__()=web2py.gluon.dal.SQLALL-class.html#__init__,Method web2py.gluon.dal.SQLCustomType.__init__()=web2py.gluon.dal.SQLCustomType-class.html#__init__,Method web2py.gluon.dal.SQLiteAdapter.__init__()=web2py.gluon.dal.SQLiteAdapter-class.html#__init__,Method web2py.gluon.dal.Set.__init__()=web2py.gluon.dal.Set-class.html#__init__,Method web2py.gluon.dal.Table.__init__()=web2py.gluon.dal.Table-class.html#__init__,Method web2py.gluon.dal.TeradataAdapter.__init__()=web2py.gluon.dal.TeradataAdapter-class.html#__init__,Method web2py.gluon.debug.Pipe.__init__()=web2py.gluon.debug.Pipe-class.html#__init__,Method web2py.gluon.globals.Request.__init__()=web2py.gluon.globals.Request-class.html#__init__,Method web2py.gluon.globals.Response.__init__()=web2py.gluon.globals.Response-class.html#__init__,Method web2py.gluon.highlight.Highlighter.__init__()=web2py.gluon.highlight.Highlighter-class.html#__init__,Method web2py.gluon.html.BEAUTIFY.__init__()=web2py.gluon.html.BEAUTIFY-class.html#__init__,Method web2py.gluon.html.DIV.__init__()=web2py.gluon.html.DIV-class.html#__init__,Method web2py.gluon.html.FORM.__init__()=web2py.gluon.html.FORM-class.html#__init__,Method web2py.gluon.html.MARKMIN.__init__()=web2py.gluon.html.MARKMIN-class.html#__init__,Method web2py.gluon.html.MENU.__init__()=web2py.gluon.html.MENU-class.html#__init__,Method web2py.gluon.html.XML.__init__()=web2py.gluon.html.XML-class.html#__init__,Method web2py.gluon.html.web2pyHTMLParser.__init__()=web2py.gluon.html.web2pyHTMLParser-class.html#__init__,Method web2py.gluon.http.HTTP.__init__()=web2py.gluon.http.HTTP-class.html#__init__,Method web2py.gluon.languages.lazyT.__init__()=web2py.gluon.languages.lazyT-class.html#__init__,Method web2py.gluon.languages.translator.__init__()=web2py.gluon.languages.translator-class.html#__init__,Method web2py.gluon.main.HttpServer.__init__()=web2py.gluon.main.HttpServer-class.html#__init__,Method web2py.gluon.newcron.Token.__init__()=web2py.gluon.newcron.Token-class.html#__init__,Method web2py.gluon.newcron.cronlauncher.__init__()=web2py.gluon.newcron.cronlauncher-class.html#__init__,Method web2py.gluon.newcron.extcron.__init__()=web2py.gluon.newcron.extcron-class.html#__init__,Method web2py.gluon.newcron.hardcron.__init__()=web2py.gluon.newcron.hardcron-class.html#__init__,Method web2py.gluon.newcron.softcron.__init__()=web2py.gluon.newcron.softcron-class.html#__init__,Method web2py.gluon.restricted.RestrictedError.__init__()=web2py.gluon.restricted.RestrictedError-class.html#__init__,Method web2py.gluon.restricted.TicketStorage.__init__()=web2py.gluon.restricted.TicketStorage-class.html#__init__,Method web2py.gluon.rewrite.MapUrlIn.__init__()=web2py.gluon.rewrite.MapUrlIn-class.html#__init__,Method web2py.gluon.rewrite.MapUrlOut.__init__()=web2py.gluon.rewrite.MapUrlOut-class.html#__init__,Method web2py.gluon.rocket.ChunkedReader.__init__()=web2py.gluon.rocket.ChunkedReader-class.html#__init__,Method web2py.gluon.rocket.Connection.__init__()=web2py.gluon.rocket.Connection-class.html#__init__,Method web2py.gluon.rocket.FileWrapper.__init__()=web2py.gluon.rocket.FileWrapper-class.html#__init__,Method web2py.gluon.rocket.Headers.__init__()=web2py.gluon.rocket.Headers-class.html#__init__,Method web2py.gluon.rocket.Listener.__init__()=web2py.gluon.rocket.Listener-class.html#__init__,Method web2py.gluon.rocket.Monitor.__init__()=web2py.gluon.rocket.Monitor-class.html#__init__,Method web2py.gluon.rocket.Rocket.__init__()=web2py.gluon.rocket.Rocket-class.html#__init__,Method web2py.gluon.rocket.ThreadPool.__init__()=web2py.gluon.rocket.ThreadPool-class.html#__init__,Method web2py.gluon.rocket.WSGIWorker.__init__()=web2py.gluon.rocket.WSGIWorker-class.html#__init__,Method web2py.gluon.rocket.Worker.__init__()=web2py.gluon.rocket.Worker-class.html#__init__,Method web2py.gluon.sanitizer.XssCleaner.__init__()=web2py.gluon.sanitizer.XssCleaner-class.html#__init__,Method web2py.gluon.sqlhtml.AutocompleteWidget.__init__()=web2py.gluon.sqlhtml.AutocompleteWidget-class.html#__init__,Method web2py.gluon.sqlhtml.SQLFORM.__init__()=web2py.gluon.sqlhtml.SQLFORM-class.html#__init__,Method web2py.gluon.sqlhtml.SQLTABLE.__init__()=web2py.gluon.sqlhtml.SQLTABLE-class.html#__init__,Method web2py.gluon.storage.Messages.__init__()=web2py.gluon.storage.Messages-class.html#__init__,Method web2py.gluon.template.BlockNode.__init__()=web2py.gluon.template.BlockNode-class.html#__init__,Method web2py.gluon.template.Content.__init__()=web2py.gluon.template.Content-class.html#__init__,Method web2py.gluon.template.Node.__init__()=web2py.gluon.template.Node-class.html#__init__,Method web2py.gluon.template.SuperNode.__init__()=web2py.gluon.template.SuperNode-class.html#__init__,Method web2py.gluon.template.TemplateParser.__init__()=web2py.gluon.template.TemplateParser-class.html#__init__,Method web2py.gluon.tools.Auth.__init__()=web2py.gluon.tools.Auth-class.html#__init__,Method web2py.gluon.tools.Crud.__init__()=web2py.gluon.tools.Crud-class.html#__init__,Method web2py.gluon.tools.Mail.Attachment.__init__()=web2py.gluon.tools.Mail.Attachment-class.html#__init__,Method web2py.gluon.tools.Mail.__init__()=web2py.gluon.tools.Mail-class.html#__init__,Method web2py.gluon.tools.PluginManager.__init__()=web2py.gluon.tools.PluginManager-class.html#__init__,Method web2py.gluon.tools.Recaptcha.__init__()=web2py.gluon.tools.Recaptcha-class.html#__init__,Method web2py.gluon.tools.Service.JsonRpcException.__init__()=web2py.gluon.tools.Service.JsonRpcException-class.html#__init__,Method web2py.gluon.tools.Service.__init__()=web2py.gluon.tools.Service-class.html#__init__,Method web2py.gluon.validators.CLEANUP.__init__()=web2py.gluon.validators.CLEANUP-class.html#__init__,Method web2py.gluon.validators.CRYPT.__init__()=web2py.gluon.validators.CRYPT-class.html#__init__,Method web2py.gluon.validators.IS_ALPHANUMERIC.__init__()=web2py.gluon.validators.IS_ALPHANUMERIC-class.html#__init__,Method web2py.gluon.validators.IS_DATE.__init__()=web2py.gluon.validators.IS_DATE-class.html#__init__,Method web2py.gluon.validators.IS_DATETIME.__init__()=web2py.gluon.validators.IS_DATETIME-class.html#__init__,Method web2py.gluon.validators.IS_DATETIME_IN_RANGE.__init__()=web2py.gluon.validators.IS_DATETIME_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_DATE_IN_RANGE.__init__()=web2py.gluon.validators.IS_DATE_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_DECIMAL_IN_RANGE.__init__()=web2py.gluon.validators.IS_DECIMAL_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_EMAIL.__init__()=web2py.gluon.validators.IS_EMAIL-class.html#__init__,Method web2py.gluon.validators.IS_EMPTY_OR.__init__()=web2py.gluon.validators.IS_EMPTY_OR-class.html#__init__,Method web2py.gluon.validators.IS_EQUAL_TO.__init__()=web2py.gluon.validators.IS_EQUAL_TO-class.html#__init__,Method web2py.gluon.validators.IS_EXPR.__init__()=web2py.gluon.validators.IS_EXPR-class.html#__init__,Method web2py.gluon.validators.IS_FLOAT_IN_RANGE.__init__()=web2py.gluon.validators.IS_FLOAT_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_GENERIC_URL.__init__()=web2py.gluon.validators.IS_GENERIC_URL-class.html#__init__,Method web2py.gluon.validators.IS_HTTP_URL.__init__()=web2py.gluon.validators.IS_HTTP_URL-class.html#__init__,Method web2py.gluon.validators.IS_IMAGE.__init__()=web2py.gluon.validators.IS_IMAGE-class.html#__init__,Method web2py.gluon.validators.IS_INT_IN_RANGE.__init__()=web2py.gluon.validators.IS_INT_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_IN_DB.__init__()=web2py.gluon.validators.IS_IN_DB-class.html#__init__,Method web2py.gluon.validators.IS_IN_SET.__init__()=web2py.gluon.validators.IS_IN_SET-class.html#__init__,Method web2py.gluon.validators.IS_IN_SUBSET.__init__()=web2py.gluon.validators.IS_IN_SUBSET-class.html#__init__,Method web2py.gluon.validators.IS_IPV4.__init__()=web2py.gluon.validators.IS_IPV4-class.html#__init__,Method web2py.gluon.validators.IS_LENGTH.__init__()=web2py.gluon.validators.IS_LENGTH-class.html#__init__,Method web2py.gluon.validators.IS_LIST_OF.__init__()=web2py.gluon.validators.IS_LIST_OF-class.html#__init__,Method web2py.gluon.validators.IS_MATCH.__init__()=web2py.gluon.validators.IS_MATCH-class.html#__init__,Method web2py.gluon.validators.IS_NOT_EMPTY.__init__()=web2py.gluon.validators.IS_NOT_EMPTY-class.html#__init__,Method web2py.gluon.validators.IS_NOT_IN_DB.__init__()=web2py.gluon.validators.IS_NOT_IN_DB-class.html#__init__,Method web2py.gluon.validators.IS_SLUG.__init__()=web2py.gluon.validators.IS_SLUG-class.html#__init__,Method web2py.gluon.validators.IS_STRONG.__init__()=web2py.gluon.validators.IS_STRONG-class.html#__init__,Method web2py.gluon.validators.IS_TIME.__init__()=web2py.gluon.validators.IS_TIME-class.html#__init__,Method web2py.gluon.validators.IS_UPLOAD_FILENAME.__init__()=web2py.gluon.validators.IS_UPLOAD_FILENAME-class.html#__init__,Method web2py.gluon.validators.IS_URL.__init__()=web2py.gluon.validators.IS_URL-class.html#__init__,Method web2py.gluon.widget.IO.__init__()=web2py.gluon.widget.IO-class.html#__init__,Method web2py.gluon.widget.web2pyDialog.__init__()=web2py.gluon.widget.web2pyDialog-class.html#__init__,Method web2py.gluon.winservice.Service.__init__()=web2py.gluon.winservice.Service-class.html#__init__"><a title="web2py.gluon.cache.Cache.__init__
 
145
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">HTMLParser</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method web2py.gluon.cache.Cache.__init__()=web2py.gluon.cache.Cache-class.html#__init__,Method web2py.gluon.cache.CacheAbstract.__init__()=web2py.gluon.cache.CacheAbstract-class.html#__init__,Method web2py.gluon.cache.CacheInRam.__init__()=web2py.gluon.cache.CacheInRam-class.html#__init__,Method web2py.gluon.cache.CacheOnDisk.__init__()=web2py.gluon.cache.CacheOnDisk-class.html#__init__,Method web2py.gluon.compileapp.LoadFactory.__init__()=web2py.gluon.compileapp.LoadFactory-class.html#__init__,Method web2py.gluon.custom_import._DateTrackerImporter.__init__()=web2py.gluon.custom_import._DateTrackerImporter-class.html#__init__,Method web2py.gluon.custom_import._Web2pyImporter.__init__()=web2py.gluon.custom_import._Web2pyImporter-class.html#__init__,Method web2py.gluon.dal.BaseAdapter.__init__()=web2py.gluon.dal.BaseAdapter-class.html#__init__,Method web2py.gluon.dal.CouchDBAdapter.__init__()=web2py.gluon.dal.CouchDBAdapter-class.html#__init__,Method web2py.gluon.dal.CubridAdapter.__init__()=web2py.gluon.dal.CubridAdapter-class.html#__init__,Method web2py.gluon.dal.DAL.__init__()=web2py.gluon.dal.DAL-class.html#__init__,Method web2py.gluon.dal.DB2Adapter.__init__()=web2py.gluon.dal.DB2Adapter-class.html#__init__,Method web2py.gluon.dal.DatabaseStoredFile.__init__()=web2py.gluon.dal.DatabaseStoredFile-class.html#__init__,Method web2py.gluon.dal.Expression.__init__()=web2py.gluon.dal.Expression-class.html#__init__,Method web2py.gluon.dal.Field.__init__()=web2py.gluon.dal.Field-class.html#__init__,Method web2py.gluon.dal.FieldLazy.__init__()=web2py.gluon.dal.FieldLazy-class.html#__init__,Method web2py.gluon.dal.FieldVirtual.__init__()=web2py.gluon.dal.FieldVirtual-class.html#__init__,Method web2py.gluon.dal.FireBirdAdapter.__init__()=web2py.gluon.dal.FireBirdAdapter-class.html#__init__,Method web2py.gluon.dal.FireBirdEmbeddedAdapter.__init__()=web2py.gluon.dal.FireBirdEmbeddedAdapter-class.html#__init__,Method web2py.gluon.dal.GAEDecimalProperty.__init__()=web2py.gluon.dal.GAEDecimalProperty-class.html#__init__,Method web2py.gluon.dal.GAEF.__init__()=web2py.gluon.dal.GAEF-class.html#__init__,Method web2py.gluon.dal.GoogleDatastoreAdapter.__init__()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#__init__,Method web2py.gluon.dal.GoogleSQLAdapter.__init__()=web2py.gluon.dal.GoogleSQLAdapter-class.html#__init__,Method web2py.gluon.dal.InformixAdapter.__init__()=web2py.gluon.dal.InformixAdapter-class.html#__init__,Method web2py.gluon.dal.IngresAdapter.__init__()=web2py.gluon.dal.IngresAdapter-class.html#__init__,Method web2py.gluon.dal.JDBCPostgreSQLAdapter.__init__()=web2py.gluon.dal.JDBCPostgreSQLAdapter-class.html#__init__,Method web2py.gluon.dal.JDBCSQLiteAdapter.__init__()=web2py.gluon.dal.JDBCSQLiteAdapter-class.html#__init__,Method web2py.gluon.dal.MSSQLAdapter.__init__()=web2py.gluon.dal.MSSQLAdapter-class.html#__init__,Method web2py.gluon.dal.MongoDBAdapter.__init__()=web2py.gluon.dal.MongoDBAdapter-class.html#__init__,Method web2py.gluon.dal.MySQLAdapter.__init__()=web2py.gluon.dal.MySQLAdapter-class.html#__init__,Method web2py.gluon.dal.OracleAdapter.__init__()=web2py.gluon.dal.OracleAdapter-class.html#__init__,Method web2py.gluon.dal.PostgreSQLAdapter.__init__()=web2py.gluon.dal.PostgreSQLAdapter-class.html#__init__,Method web2py.gluon.dal.Query.__init__()=web2py.gluon.dal.Query-class.html#__init__,Method web2py.gluon.dal.Rows.__init__()=web2py.gluon.dal.Rows-class.html#__init__,Method web2py.gluon.dal.SAPDBAdapter.__init__()=web2py.gluon.dal.SAPDBAdapter-class.html#__init__,Method web2py.gluon.dal.SQLALL.__init__()=web2py.gluon.dal.SQLALL-class.html#__init__,Method web2py.gluon.dal.SQLCustomType.__init__()=web2py.gluon.dal.SQLCustomType-class.html#__init__,Method web2py.gluon.dal.SQLiteAdapter.__init__()=web2py.gluon.dal.SQLiteAdapter-class.html#__init__,Method web2py.gluon.dal.Set.__init__()=web2py.gluon.dal.Set-class.html#__init__,Method web2py.gluon.dal.Table.__init__()=web2py.gluon.dal.Table-class.html#__init__,Method web2py.gluon.dal.TeradataAdapter.__init__()=web2py.gluon.dal.TeradataAdapter-class.html#__init__,Method web2py.gluon.dal.VirtualCommand.__init__()=web2py.gluon.dal.VirtualCommand-class.html#__init__,Method web2py.gluon.debug.Pipe.__init__()=web2py.gluon.debug.Pipe-class.html#__init__,Method web2py.gluon.globals.Request.__init__()=web2py.gluon.globals.Request-class.html#__init__,Method web2py.gluon.globals.Response.__init__()=web2py.gluon.globals.Response-class.html#__init__,Method web2py.gluon.highlight.Highlighter.__init__()=web2py.gluon.highlight.Highlighter-class.html#__init__,Method web2py.gluon.html.BEAUTIFY.__init__()=web2py.gluon.html.BEAUTIFY-class.html#__init__,Method web2py.gluon.html.DIV.__init__()=web2py.gluon.html.DIV-class.html#__init__,Method web2py.gluon.html.FORM.__init__()=web2py.gluon.html.FORM-class.html#__init__,Method web2py.gluon.html.MARKMIN.__init__()=web2py.gluon.html.MARKMIN-class.html#__init__,Method web2py.gluon.html.MENU.__init__()=web2py.gluon.html.MENU-class.html#__init__,Method web2py.gluon.html.XML.__init__()=web2py.gluon.html.XML-class.html#__init__,Method web2py.gluon.html.web2pyHTMLParser.__init__()=web2py.gluon.html.web2pyHTMLParser-class.html#__init__,Method web2py.gluon.http.HTTP.__init__()=web2py.gluon.http.HTTP-class.html#__init__,Method web2py.gluon.languages.lazyT.__init__()=web2py.gluon.languages.lazyT-class.html#__init__,Method web2py.gluon.languages.translator.__init__()=web2py.gluon.languages.translator-class.html#__init__,Method web2py.gluon.main.HttpServer.__init__()=web2py.gluon.main.HttpServer-class.html#__init__,Method web2py.gluon.newcron.Token.__init__()=web2py.gluon.newcron.Token-class.html#__init__,Method web2py.gluon.newcron.cronlauncher.__init__()=web2py.gluon.newcron.cronlauncher-class.html#__init__,Method web2py.gluon.newcron.extcron.__init__()=web2py.gluon.newcron.extcron-class.html#__init__,Method web2py.gluon.newcron.hardcron.__init__()=web2py.gluon.newcron.hardcron-class.html#__init__,Method web2py.gluon.newcron.softcron.__init__()=web2py.gluon.newcron.softcron-class.html#__init__,Method web2py.gluon.restricted.RestrictedError.__init__()=web2py.gluon.restricted.RestrictedError-class.html#__init__,Method web2py.gluon.restricted.TicketStorage.__init__()=web2py.gluon.restricted.TicketStorage-class.html#__init__,Method web2py.gluon.rewrite.MapUrlIn.__init__()=web2py.gluon.rewrite.MapUrlIn-class.html#__init__,Method web2py.gluon.rewrite.MapUrlOut.__init__()=web2py.gluon.rewrite.MapUrlOut-class.html#__init__,Method web2py.gluon.rocket.ChunkedReader.__init__()=web2py.gluon.rocket.ChunkedReader-class.html#__init__,Method web2py.gluon.rocket.Connection.__init__()=web2py.gluon.rocket.Connection-class.html#__init__,Method web2py.gluon.rocket.FileLikeSocket.__init__()=web2py.gluon.rocket.FileLikeSocket-class.html#__init__,Method web2py.gluon.rocket.FileSystemWorker.__init__()=web2py.gluon.rocket.FileSystemWorker-class.html#__init__,Method web2py.gluon.rocket.FuturesMiddleware.__init__()=web2py.gluon.rocket.FuturesMiddleware-class.html#__init__,Method web2py.gluon.rocket.LimitingFileWrapper.__init__()=web2py.gluon.rocket.LimitingFileWrapper-class.html#__init__,Method web2py.gluon.rocket.Listener.__init__()=web2py.gluon.rocket.Listener-class.html#__init__,Method web2py.gluon.rocket.Monitor.__init__()=web2py.gluon.rocket.Monitor-class.html#__init__,Method web2py.gluon.rocket.Rocket.__init__()=web2py.gluon.rocket.Rocket-class.html#__init__,Method web2py.gluon.rocket.ThreadPool.__init__()=web2py.gluon.rocket.ThreadPool-class.html#__init__,Method web2py.gluon.rocket.WSGIExecutor.__init__()=web2py.gluon.rocket.WSGIExecutor-class.html#__init__,Method web2py.gluon.rocket.WSGIFuture.__init__()=web2py.gluon.rocket.WSGIFuture-class.html#__init__,Method web2py.gluon.rocket.WSGIWorker.__init__()=web2py.gluon.rocket.WSGIWorker-class.html#__init__,Method web2py.gluon.rocket.Worker.__init__()=web2py.gluon.rocket.Worker-class.html#__init__,Method web2py.gluon.rocket._WorkItem.__init__()=web2py.gluon.rocket._WorkItem-class.html#__init__,Method web2py.gluon.sanitizer.XssCleaner.__init__()=web2py.gluon.sanitizer.XssCleaner-class.html#__init__,Method web2py.gluon.scheduler.MetaScheduler.__init__()=web2py.gluon.scheduler.MetaScheduler-class.html#__init__,Method web2py.gluon.scheduler.Scheduler.__init__()=web2py.gluon.scheduler.Scheduler-class.html#__init__,Method web2py.gluon.scheduler.TYPE.__init__()=web2py.gluon.scheduler.TYPE-class.html#__init__,Method web2py.gluon.scheduler.Task.__init__()=web2py.gluon.scheduler.Task-class.html#__init__,Method web2py.gluon.scheduler.TaskReport.__init__()=web2py.gluon.scheduler.TaskReport-class.html#__init__,Method web2py.gluon.sqlhtml.AutocompleteWidget.__init__()=web2py.gluon.sqlhtml.AutocompleteWidget-class.html#__init__,Method web2py.gluon.sqlhtml.SQLFORM.__init__()=web2py.gluon.sqlhtml.SQLFORM-class.html#__init__,Method web2py.gluon.sqlhtml.SQLTABLE.__init__()=web2py.gluon.sqlhtml.SQLTABLE-class.html#__init__,Method web2py.gluon.storage.Messages.__init__()=web2py.gluon.storage.Messages-class.html#__init__,Method web2py.gluon.template.BlockNode.__init__()=web2py.gluon.template.BlockNode-class.html#__init__,Method web2py.gluon.template.Content.__init__()=web2py.gluon.template.Content-class.html#__init__,Method web2py.gluon.template.Node.__init__()=web2py.gluon.template.Node-class.html#__init__,Method web2py.gluon.template.SuperNode.__init__()=web2py.gluon.template.SuperNode-class.html#__init__,Method web2py.gluon.template.TemplateParser.__init__()=web2py.gluon.template.TemplateParser-class.html#__init__,Method web2py.gluon.tools.Auth.__init__()=web2py.gluon.tools.Auth-class.html#__init__,Method web2py.gluon.tools.Crud.__init__()=web2py.gluon.tools.Crud-class.html#__init__,Method web2py.gluon.tools.Mail.Attachment.__init__()=web2py.gluon.tools.Mail.Attachment-class.html#__init__,Method web2py.gluon.tools.Mail.__init__()=web2py.gluon.tools.Mail-class.html#__init__,Method web2py.gluon.tools.PluginManager.__init__()=web2py.gluon.tools.PluginManager-class.html#__init__,Method web2py.gluon.tools.Recaptcha.__init__()=web2py.gluon.tools.Recaptcha-class.html#__init__,Method web2py.gluon.tools.Service.JsonRpcException.__init__()=web2py.gluon.tools.Service.JsonRpcException-class.html#__init__,Method web2py.gluon.tools.Service.__init__()=web2py.gluon.tools.Service-class.html#__init__,Method web2py.gluon.validators.CLEANUP.__init__()=web2py.gluon.validators.CLEANUP-class.html#__init__,Method web2py.gluon.validators.CRYPT.__init__()=web2py.gluon.validators.CRYPT-class.html#__init__,Method web2py.gluon.validators.IS_ALPHANUMERIC.__init__()=web2py.gluon.validators.IS_ALPHANUMERIC-class.html#__init__,Method web2py.gluon.validators.IS_DATE.__init__()=web2py.gluon.validators.IS_DATE-class.html#__init__,Method web2py.gluon.validators.IS_DATETIME.__init__()=web2py.gluon.validators.IS_DATETIME-class.html#__init__,Method web2py.gluon.validators.IS_DATETIME_IN_RANGE.__init__()=web2py.gluon.validators.IS_DATETIME_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_DATE_IN_RANGE.__init__()=web2py.gluon.validators.IS_DATE_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_DECIMAL_IN_RANGE.__init__()=web2py.gluon.validators.IS_DECIMAL_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_EMAIL.__init__()=web2py.gluon.validators.IS_EMAIL-class.html#__init__,Method web2py.gluon.validators.IS_EMPTY_OR.__init__()=web2py.gluon.validators.IS_EMPTY_OR-class.html#__init__,Method web2py.gluon.validators.IS_EQUAL_TO.__init__()=web2py.gluon.validators.IS_EQUAL_TO-class.html#__init__,Method web2py.gluon.validators.IS_EXPR.__init__()=web2py.gluon.validators.IS_EXPR-class.html#__init__,Method web2py.gluon.validators.IS_FLOAT_IN_RANGE.__init__()=web2py.gluon.validators.IS_FLOAT_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_GENERIC_URL.__init__()=web2py.gluon.validators.IS_GENERIC_URL-class.html#__init__,Method web2py.gluon.validators.IS_HTTP_URL.__init__()=web2py.gluon.validators.IS_HTTP_URL-class.html#__init__,Method web2py.gluon.validators.IS_IMAGE.__init__()=web2py.gluon.validators.IS_IMAGE-class.html#__init__,Method web2py.gluon.validators.IS_INT_IN_RANGE.__init__()=web2py.gluon.validators.IS_INT_IN_RANGE-class.html#__init__,Method web2py.gluon.validators.IS_IN_DB.__init__()=web2py.gluon.validators.IS_IN_DB-class.html#__init__,Method web2py.gluon.validators.IS_IN_SET.__init__()=web2py.gluon.validators.IS_IN_SET-class.html#__init__,Method web2py.gluon.validators.IS_IN_SUBSET.__init__()=web2py.gluon.validators.IS_IN_SUBSET-class.html#__init__,Method web2py.gluon.validators.IS_IPV4.__init__()=web2py.gluon.validators.IS_IPV4-class.html#__init__,Method web2py.gluon.validators.IS_LENGTH.__init__()=web2py.gluon.validators.IS_LENGTH-class.html#__init__,Method web2py.gluon.validators.IS_LIST_OF.__init__()=web2py.gluon.validators.IS_LIST_OF-class.html#__init__,Method web2py.gluon.validators.IS_MATCH.__init__()=web2py.gluon.validators.IS_MATCH-class.html#__init__,Method web2py.gluon.validators.IS_NOT_EMPTY.__init__()=web2py.gluon.validators.IS_NOT_EMPTY-class.html#__init__,Method web2py.gluon.validators.IS_NOT_IN_DB.__init__()=web2py.gluon.validators.IS_NOT_IN_DB-class.html#__init__,Method web2py.gluon.validators.IS_SLUG.__init__()=web2py.gluon.validators.IS_SLUG-class.html#__init__,Method web2py.gluon.validators.IS_STRONG.__init__()=web2py.gluon.validators.IS_STRONG-class.html#__init__,Method web2py.gluon.validators.IS_TIME.__init__()=web2py.gluon.validators.IS_TIME-class.html#__init__,Method web2py.gluon.validators.IS_UPLOAD_FILENAME.__init__()=web2py.gluon.validators.IS_UPLOAD_FILENAME-class.html#__init__,Method web2py.gluon.validators.IS_URL.__init__()=web2py.gluon.validators.IS_URL-class.html#__init__,Method web2py.gluon.widget.IO.__init__()=web2py.gluon.widget.IO-class.html#__init__,Method web2py.gluon.widget.web2pyDialog.__init__()=web2py.gluon.widget.web2pyDialog-class.html#__init__,Method web2py.gluon.winservice.Service.__init__()=web2py.gluon.winservice.Service-class.html#__init__"><a title="web2py.gluon.cache.Cache.__init__
146
146
web2py.gluon.cache.CacheAbstract.__init__
147
147
web2py.gluon.cache.CacheInRam.__init__
148
148
web2py.gluon.cache.CacheOnDisk.__init__
157
157
web2py.gluon.dal.DatabaseStoredFile.__init__
158
158
web2py.gluon.dal.Expression.__init__
159
159
web2py.gluon.dal.Field.__init__
 
160
web2py.gluon.dal.FieldLazy.__init__
 
161
web2py.gluon.dal.FieldVirtual.__init__
160
162
web2py.gluon.dal.FireBirdAdapter.__init__
161
163
web2py.gluon.dal.FireBirdEmbeddedAdapter.__init__
162
164
web2py.gluon.dal.GAEDecimalProperty.__init__
181
183
web2py.gluon.dal.Set.__init__
182
184
web2py.gluon.dal.Table.__init__
183
185
web2py.gluon.dal.TeradataAdapter.__init__
 
186
web2py.gluon.dal.VirtualCommand.__init__
184
187
web2py.gluon.debug.Pipe.__init__
185
188
web2py.gluon.globals.Request.__init__
186
189
web2py.gluon.globals.Response.__init__
207
210
web2py.gluon.rewrite.MapUrlOut.__init__
208
211
web2py.gluon.rocket.ChunkedReader.__init__
209
212
web2py.gluon.rocket.Connection.__init__
210
 
web2py.gluon.rocket.FileWrapper.__init__
211
 
web2py.gluon.rocket.Headers.__init__
 
213
web2py.gluon.rocket.FileLikeSocket.__init__
 
214
web2py.gluon.rocket.FileSystemWorker.__init__
 
215
web2py.gluon.rocket.FuturesMiddleware.__init__
 
216
web2py.gluon.rocket.LimitingFileWrapper.__init__
212
217
web2py.gluon.rocket.Listener.__init__
213
218
web2py.gluon.rocket.Monitor.__init__
214
219
web2py.gluon.rocket.Rocket.__init__
215
220
web2py.gluon.rocket.ThreadPool.__init__
 
221
web2py.gluon.rocket.WSGIExecutor.__init__
 
222
web2py.gluon.rocket.WSGIFuture.__init__
216
223
web2py.gluon.rocket.WSGIWorker.__init__
217
224
web2py.gluon.rocket.Worker.__init__
 
225
web2py.gluon.rocket._WorkItem.__init__
218
226
web2py.gluon.sanitizer.XssCleaner.__init__
 
227
web2py.gluon.scheduler.MetaScheduler.__init__
 
228
web2py.gluon.scheduler.Scheduler.__init__
 
229
web2py.gluon.scheduler.TYPE.__init__
 
230
web2py.gluon.scheduler.Task.__init__
 
231
web2py.gluon.scheduler.TaskReport.__init__
219
232
web2py.gluon.sqlhtml.AutocompleteWidget.__init__
220
233
web2py.gluon.sqlhtml.SQLFORM.__init__
221
234
web2py.gluon.sqlhtml.SQLTABLE.__init__
266
279
web2py.gluon.validators.IS_URL.__init__
267
280
web2py.gluon.widget.IO.__init__
268
281
web2py.gluon.widget.web2pyDialog.__init__
269
 
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-2', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fmt</tt><tt class="py-op">)</tt> </tt>
 
282
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-4', '__init__', 'link-4');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fmt</tt><tt class="py-op">)</tt> </tt>
270
283
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
271
284
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
272
285
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">permitted_tags</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'/'</tt><tt class="py-op">]</tt> </tt>
286
299
</div><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"> </tt>
287
300
<a name="XssCleaner.handle_data"></a><div id="XssCleaner.handle_data-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_data-toggle" onclick="return toggle('XssCleaner.handle_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_data">handle_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
288
301
</div><div id="XssCleaner.handle_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_data-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">data</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt><tt class="py-op">:</tt> </tt>
289
 
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-3" class="py-name" targets="Function web2py.gluon.sanitizer.xssescape()=web2py.gluon.sanitizer-module.html#xssescape"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-3', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
302
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-5" class="py-name" targets="Function web2py.gluon.sanitizer.xssescape()=web2py.gluon.sanitizer-module.html#xssescape"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-5', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
290
303
</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
291
304
<a name="XssCleaner.handle_charref"></a><div id="XssCleaner.handle_charref-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_charref-toggle" onclick="return toggle('XssCleaner.handle_charref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_charref">handle_charref</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">ref</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
292
305
</div><div id="XssCleaner.handle_charref-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_charref-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt><tt class="py-op">:</tt> </tt>
293
306
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
294
 
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-4" class="py-name" targets="Method web2py.gluon.dal.Expression.len()=web2py.gluon.dal.Expression-class.html#len"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-4', 'len', 'link-4');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">ref</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">7</tt> <tt class="py-keyword">and</tt> <tt class="py-name">ref</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
307
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-6" class="py-name" targets="Method web2py.gluon.dal.Expression.len()=web2py.gluon.dal.Expression-class.html#len"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-6', 'len', 'link-6');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">ref</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">7</tt> <tt class="py-keyword">and</tt> <tt class="py-name">ref</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
295
308
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&amp;#%s;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt> </tt>
296
309
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
297
 
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-5" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-5', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&amp;#%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt><tt class="py-op">)</tt> </tt>
 
310
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-7" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-7', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&amp;#%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt><tt class="py-op">)</tt> </tt>
298
311
</div><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
299
312
<a name="XssCleaner.handle_entityref"></a><div id="XssCleaner.handle_entityref-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_entityref-toggle" onclick="return toggle('XssCleaner.handle_entityref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_entityref">handle_entityref</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">ref</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
300
313
</div><div id="XssCleaner.handle_entityref-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_entityref-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt><tt class="py-op">:</tt> </tt>
302
315
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">ref</tt> <tt class="py-keyword">in</tt> <tt class="py-name">entitydefs</tt><tt class="py-op">:</tt> </tt>
303
316
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&amp;%s;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt> </tt>
304
317
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
305
 
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-6" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-6', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&amp;%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt><tt class="py-op">)</tt> </tt>
 
318
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-8" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-8', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&amp;%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">ref</tt><tt class="py-op">)</tt> </tt>
306
319
</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
307
320
<a name="XssCleaner.handle_comment"></a><div id="XssCleaner.handle_comment-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_comment-toggle" onclick="return toggle('XssCleaner.handle_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_comment">handle_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">comment</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
308
321
</div><div id="XssCleaner.handle_comment-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_comment-expanded"><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt><tt class="py-op">:</tt> </tt>
309
322
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
310
323
<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">comment</tt><tt class="py-op">:</tt> </tt>
311
 
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-7" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-7', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--%s--&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">comment</tt><tt class="py-op">)</tt> </tt>
 
324
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-9" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-9', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--%s--&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">comment</tt><tt class="py-op">)</tt> </tt>
312
325
</div><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
313
326
<a name="XssCleaner.handle_starttag"></a><div id="XssCleaner.handle_starttag-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_starttag-toggle" onclick="return toggle('XssCleaner.handle_starttag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_starttag">handle_starttag</a><tt class="py-op">(</tt> </tt>
314
327
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
316
329
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-param">method</tt><tt class="py-op">,</tt> </tt>
317
330
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-param">attrs</tt><tt class="py-op">,</tt> </tt>
318
331
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
319
 
</div><div id="XssCleaner.handle_starttag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_starttag-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-8" class="py-name" targets="Variable web2py.gluon.html.A.tag=web2py.gluon.html.A-class.html#tag,Variable web2py.gluon.html.B.tag=web2py.gluon.html.B-class.html#tag,Variable web2py.gluon.html.BEAUTIFY.tag=web2py.gluon.html.BEAUTIFY-class.html#tag,Variable web2py.gluon.html.BODY.tag=web2py.gluon.html.BODY-class.html#tag,Variable web2py.gluon.html.BR.tag=web2py.gluon.html.BR-class.html#tag,Variable web2py.gluon.html.BUTTON.tag=web2py.gluon.html.BUTTON-class.html#tag,Variable web2py.gluon.html.CAT.tag=web2py.gluon.html.CAT-class.html#tag,Variable web2py.gluon.html.CENTER.tag=web2py.gluon.html.CENTER-class.html#tag,Variable web2py.gluon.html.COL.tag=web2py.gluon.html.COL-class.html#tag,Variable web2py.gluon.html.COLGROUP.tag=web2py.gluon.html.COLGROUP-class.html#tag,Variable web2py.gluon.html.DIV.tag=web2py.gluon.html.DIV-class.html#tag,Variable web2py.gluon.html.EM.tag=web2py.gluon.html.EM-class.html#tag,Variable web2py.gluon.html.EMBED.tag=web2py.gluon.html.EMBED-class.html#tag,Variable web2py.gluon.html.FIELDSET.tag=web2py.gluon.html.FIELDSET-class.html#tag,Variable web2py.gluon.html.FORM.tag=web2py.gluon.html.FORM-class.html#tag,Variable web2py.gluon.html.H1.tag=web2py.gluon.html.H1-class.html#tag,Variable web2py.gluon.html.H2.tag=web2py.gluon.html.H2-class.html#tag,Variable web2py.gluon.html.H3.tag=web2py.gluon.html.H3-class.html#tag,Variable web2py.gluon.html.H4.tag=web2py.gluon.html.H4-class.html#tag,Variable web2py.gluon.html.H5.tag=web2py.gluon.html.H5-class.html#tag,Variable web2py.gluon.html.H6.tag=web2py.gluon.html.H6-class.html#tag,Variable web2py.gluon.html.HEAD.tag=web2py.gluon.html.HEAD-class.html#tag,Variable web2py.gluon.html.HR.tag=web2py.gluon.html.HR-class.html#tag,Variable web2py.gluon.html.HTML.tag=web2py.gluon.html.HTML-class.html#tag,Variable web2py.gluon.html.I.tag=web2py.gluon.html.I-class.html#tag,Variable web2py.gluon.html.IFRAME.tag=web2py.gluon.html.IFRAME-class.html#tag,Variable web2py.gluon.html.IMG.tag=web2py.gluon.html.IMG-class.html#tag,Variable web2py.gluon.html.INPUT.tag=web2py.gluon.html.INPUT-class.html#tag,Variable web2py.gluon.html.LABEL.tag=web2py.gluon.html.LABEL-class.html#tag,Variable web2py.gluon.html.LEGEND.tag=web2py.gluon.html.LEGEND-class.html#tag,Variable web2py.gluon.html.LI.tag=web2py.gluon.html.LI-class.html#tag,Variable web2py.gluon.html.LINK.tag=web2py.gluon.html.LINK-class.html#tag,Variable web2py.gluon.html.MENU.tag=web2py.gluon.html.MENU-class.html#tag,Variable web2py.gluon.html.META.tag=web2py.gluon.html.META-class.html#tag,Variable web2py.gluon.html.OBJECT.tag=web2py.gluon.html.OBJECT-class.html#tag,Variable web2py.gluon.html.OL.tag=web2py.gluon.html.OL-class.html#tag,Variable web2py.gluon.html.OPTGROUP.tag=web2py.gluon.html.OPTGROUP-class.html#tag,Variable web2py.gluon.html.OPTION.tag=web2py.gluon.html.OPTION-class.html#tag,Variable web2py.gluon.html.P.tag=web2py.gluon.html.P-class.html#tag,Variable web2py.gluon.html.PRE.tag=web2py.gluon.html.PRE-class.html#tag,Variable web2py.gluon.html.SCRIPT.tag=web2py.gluon.html.SCRIPT-class.html#tag,Variable web2py.gluon.html.SELECT.tag=web2py.gluon.html.SELECT-class.html#tag,Variable web2py.gluon.html.SPAN.tag=web2py.gluon.html.SPAN-class.html#tag,Variable web2py.gluon.html.STYLE.tag=web2py.gluon.html.STYLE-class.html#tag,Variable web2py.gluon.html.TABLE.tag=web2py.gluon.html.TABLE-class.html#tag,Variable web2py.gluon.html.TBODY.tag=web2py.gluon.html.TBODY-class.html#tag,Variable web2py.gluon.html.TD.tag=web2py.gluon.html.TD-class.html#tag,Variable web2py.gluon.html.TEXTAREA.tag=web2py.gluon.html.TEXTAREA-class.html#tag,Variable web2py.gluon.html.TFOOT.tag=web2py.gluon.html.TFOOT-class.html#tag,Variable web2py.gluon.html.TH.tag=web2py.gluon.html.TH-class.html#tag,Variable web2py.gluon.html.THEAD.tag=web2py.gluon.html.THEAD-class.html#tag,Variable web2py.gluon.html.TITLE.tag=web2py.gluon.html.TITLE-class.html#tag,Variable web2py.gluon.html.TR.tag=web2py.gluon.html.TR-class.html#tag,Variable web2py.gluon.html.TT.tag=web2py.gluon.html.TT-class.html#tag,Variable web2py.gluon.html.UL.tag=web2py.gluon.html.UL-class.html#tag,Variable web2py.gluon.html.XHTML.tag=web2py.gluon.html.XHTML-class.html#tag"><a title="web2py.gluon.html.A.tag
 
332
</div><div id="XssCleaner.handle_starttag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_starttag-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-10" class="py-name" targets="Variable web2py.gluon.html.A.tag=web2py.gluon.html.A-class.html#tag,Variable web2py.gluon.html.B.tag=web2py.gluon.html.B-class.html#tag,Variable web2py.gluon.html.BEAUTIFY.tag=web2py.gluon.html.BEAUTIFY-class.html#tag,Variable web2py.gluon.html.BODY.tag=web2py.gluon.html.BODY-class.html#tag,Variable web2py.gluon.html.BR.tag=web2py.gluon.html.BR-class.html#tag,Variable web2py.gluon.html.BUTTON.tag=web2py.gluon.html.BUTTON-class.html#tag,Variable web2py.gluon.html.CAT.tag=web2py.gluon.html.CAT-class.html#tag,Variable web2py.gluon.html.CENTER.tag=web2py.gluon.html.CENTER-class.html#tag,Variable web2py.gluon.html.COL.tag=web2py.gluon.html.COL-class.html#tag,Variable web2py.gluon.html.COLGROUP.tag=web2py.gluon.html.COLGROUP-class.html#tag,Variable web2py.gluon.html.DIV.tag=web2py.gluon.html.DIV-class.html#tag,Variable web2py.gluon.html.EM.tag=web2py.gluon.html.EM-class.html#tag,Variable web2py.gluon.html.EMBED.tag=web2py.gluon.html.EMBED-class.html#tag,Variable web2py.gluon.html.FIELDSET.tag=web2py.gluon.html.FIELDSET-class.html#tag,Variable web2py.gluon.html.FORM.tag=web2py.gluon.html.FORM-class.html#tag,Variable web2py.gluon.html.H1.tag=web2py.gluon.html.H1-class.html#tag,Variable web2py.gluon.html.H2.tag=web2py.gluon.html.H2-class.html#tag,Variable web2py.gluon.html.H3.tag=web2py.gluon.html.H3-class.html#tag,Variable web2py.gluon.html.H4.tag=web2py.gluon.html.H4-class.html#tag,Variable web2py.gluon.html.H5.tag=web2py.gluon.html.H5-class.html#tag,Variable web2py.gluon.html.H6.tag=web2py.gluon.html.H6-class.html#tag,Variable web2py.gluon.html.HEAD.tag=web2py.gluon.html.HEAD-class.html#tag,Variable web2py.gluon.html.HR.tag=web2py.gluon.html.HR-class.html#tag,Variable web2py.gluon.html.HTML.tag=web2py.gluon.html.HTML-class.html#tag,Variable web2py.gluon.html.I.tag=web2py.gluon.html.I-class.html#tag,Variable web2py.gluon.html.IFRAME.tag=web2py.gluon.html.IFRAME-class.html#tag,Variable web2py.gluon.html.IMG.tag=web2py.gluon.html.IMG-class.html#tag,Variable web2py.gluon.html.INPUT.tag=web2py.gluon.html.INPUT-class.html#tag,Variable web2py.gluon.html.LABEL.tag=web2py.gluon.html.LABEL-class.html#tag,Variable web2py.gluon.html.LEGEND.tag=web2py.gluon.html.LEGEND-class.html#tag,Variable web2py.gluon.html.LI.tag=web2py.gluon.html.LI-class.html#tag,Variable web2py.gluon.html.LINK.tag=web2py.gluon.html.LINK-class.html#tag,Variable web2py.gluon.html.MENU.tag=web2py.gluon.html.MENU-class.html#tag,Variable web2py.gluon.html.META.tag=web2py.gluon.html.META-class.html#tag,Variable web2py.gluon.html.OBJECT.tag=web2py.gluon.html.OBJECT-class.html#tag,Variable web2py.gluon.html.OL.tag=web2py.gluon.html.OL-class.html#tag,Variable web2py.gluon.html.OPTGROUP.tag=web2py.gluon.html.OPTGROUP-class.html#tag,Variable web2py.gluon.html.OPTION.tag=web2py.gluon.html.OPTION-class.html#tag,Variable web2py.gluon.html.P.tag=web2py.gluon.html.P-class.html#tag,Variable web2py.gluon.html.PRE.tag=web2py.gluon.html.PRE-class.html#tag,Variable web2py.gluon.html.SCRIPT.tag=web2py.gluon.html.SCRIPT-class.html#tag,Variable web2py.gluon.html.SELECT.tag=web2py.gluon.html.SELECT-class.html#tag,Variable web2py.gluon.html.SPAN.tag=web2py.gluon.html.SPAN-class.html#tag,Variable web2py.gluon.html.STYLE.tag=web2py.gluon.html.STYLE-class.html#tag,Variable web2py.gluon.html.TABLE.tag=web2py.gluon.html.TABLE-class.html#tag,Variable web2py.gluon.html.TBODY.tag=web2py.gluon.html.TBODY-class.html#tag,Variable web2py.gluon.html.TD.tag=web2py.gluon.html.TD-class.html#tag,Variable web2py.gluon.html.TEXTAREA.tag=web2py.gluon.html.TEXTAREA-class.html#tag,Variable web2py.gluon.html.TFOOT.tag=web2py.gluon.html.TFOOT-class.html#tag,Variable web2py.gluon.html.TH.tag=web2py.gluon.html.TH-class.html#tag,Variable web2py.gluon.html.THEAD.tag=web2py.gluon.html.THEAD-class.html#tag,Variable web2py.gluon.html.TITLE.tag=web2py.gluon.html.TITLE-class.html#tag,Variable web2py.gluon.html.TR.tag=web2py.gluon.html.TR-class.html#tag,Variable web2py.gluon.html.TT.tag=web2py.gluon.html.TT-class.html#tag,Variable web2py.gluon.html.UL.tag=web2py.gluon.html.UL-class.html#tag,Variable web2py.gluon.html.XHTML.tag=web2py.gluon.html.XHTML-class.html#tag"><a title="web2py.gluon.html.A.tag
320
333
web2py.gluon.html.B.tag
321
334
web2py.gluon.html.BEAUTIFY.tag
322
335
web2py.gluon.html.BODY.tag
371
384
web2py.gluon.html.TR.tag
372
385
web2py.gluon.html.TT.tag
373
386
web2py.gluon.html.UL.tag
374
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-8', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">:</tt> </tt>
 
387
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-10', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">:</tt> </tt>
375
388
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">strip_disallowed</tt><tt class="py-op">:</tt> </tt>
376
389
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
377
390
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
378
 
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-9" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-9', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;%s&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-10" class="py-name"><a title="web2py.gluon.html.A.tag
 
391
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-11" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-11', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;%s&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-12" class="py-name"><a title="web2py.gluon.html.A.tag
379
392
web2py.gluon.html.B.tag
380
393
web2py.gluon.html.BEAUTIFY.tag
381
394
web2py.gluon.html.BODY.tag
430
443
web2py.gluon.html.TR.tag
431
444
web2py.gluon.html.TT.tag
432
445
web2py.gluon.html.UL.tag
433
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-10', 'tag', 'link-8');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
446
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-12', 'tag', 'link-10');">tag</a></tt><tt class="py-op">)</tt> </tt>
434
447
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
435
 
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-name">bt</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-op">+</tt> <tt id="link-11" class="py-name"><a title="web2py.gluon.html.A.tag
436
 
web2py.gluon.html.B.tag
437
 
web2py.gluon.html.BEAUTIFY.tag
438
 
web2py.gluon.html.BODY.tag
439
 
web2py.gluon.html.BR.tag
440
 
web2py.gluon.html.BUTTON.tag
441
 
web2py.gluon.html.CAT.tag
442
 
web2py.gluon.html.CENTER.tag
443
 
web2py.gluon.html.COL.tag
444
 
web2py.gluon.html.COLGROUP.tag
445
 
web2py.gluon.html.DIV.tag
446
 
web2py.gluon.html.EM.tag
447
 
web2py.gluon.html.EMBED.tag
448
 
web2py.gluon.html.FIELDSET.tag
449
 
web2py.gluon.html.FORM.tag
450
 
web2py.gluon.html.H1.tag
451
 
web2py.gluon.html.H2.tag
452
 
web2py.gluon.html.H3.tag
453
 
web2py.gluon.html.H4.tag
454
 
web2py.gluon.html.H5.tag
455
 
web2py.gluon.html.H6.tag
456
 
web2py.gluon.html.HEAD.tag
457
 
web2py.gluon.html.HR.tag
458
 
web2py.gluon.html.HTML.tag
459
 
web2py.gluon.html.I.tag
460
 
web2py.gluon.html.IFRAME.tag
461
 
web2py.gluon.html.IMG.tag
462
 
web2py.gluon.html.INPUT.tag
463
 
web2py.gluon.html.LABEL.tag
464
 
web2py.gluon.html.LEGEND.tag
465
 
web2py.gluon.html.LI.tag
466
 
web2py.gluon.html.LINK.tag
467
 
web2py.gluon.html.MENU.tag
468
 
web2py.gluon.html.META.tag
469
 
web2py.gluon.html.OBJECT.tag
470
 
web2py.gluon.html.OL.tag
471
 
web2py.gluon.html.OPTGROUP.tag
472
 
web2py.gluon.html.OPTION.tag
473
 
web2py.gluon.html.P.tag
474
 
web2py.gluon.html.PRE.tag
475
 
web2py.gluon.html.SCRIPT.tag
476
 
web2py.gluon.html.SELECT.tag
477
 
web2py.gluon.html.SPAN.tag
478
 
web2py.gluon.html.STYLE.tag
479
 
web2py.gluon.html.TABLE.tag
480
 
web2py.gluon.html.TBODY.tag
481
 
web2py.gluon.html.TD.tag
482
 
web2py.gluon.html.TEXTAREA.tag
483
 
web2py.gluon.html.TFOOT.tag
484
 
web2py.gluon.html.TH.tag
485
 
web2py.gluon.html.THEAD.tag
486
 
web2py.gluon.html.TITLE.tag
487
 
web2py.gluon.html.TR.tag
488
 
web2py.gluon.html.TT.tag
489
 
web2py.gluon.html.UL.tag
490
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-11', 'tag', 'link-8');">tag</a></tt> </tt>
491
 
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-12" class="py-name"><a title="web2py.gluon.html.A.tag
492
 
web2py.gluon.html.B.tag
493
 
web2py.gluon.html.BEAUTIFY.tag
494
 
web2py.gluon.html.BODY.tag
495
 
web2py.gluon.html.BR.tag
496
 
web2py.gluon.html.BUTTON.tag
497
 
web2py.gluon.html.CAT.tag
498
 
web2py.gluon.html.CENTER.tag
499
 
web2py.gluon.html.COL.tag
500
 
web2py.gluon.html.COLGROUP.tag
501
 
web2py.gluon.html.DIV.tag
502
 
web2py.gluon.html.EM.tag
503
 
web2py.gluon.html.EMBED.tag
504
 
web2py.gluon.html.FIELDSET.tag
505
 
web2py.gluon.html.FORM.tag
506
 
web2py.gluon.html.H1.tag
507
 
web2py.gluon.html.H2.tag
508
 
web2py.gluon.html.H3.tag
509
 
web2py.gluon.html.H4.tag
510
 
web2py.gluon.html.H5.tag
511
 
web2py.gluon.html.H6.tag
512
 
web2py.gluon.html.HEAD.tag
513
 
web2py.gluon.html.HR.tag
514
 
web2py.gluon.html.HTML.tag
515
 
web2py.gluon.html.I.tag
516
 
web2py.gluon.html.IFRAME.tag
517
 
web2py.gluon.html.IMG.tag
518
 
web2py.gluon.html.INPUT.tag
519
 
web2py.gluon.html.LABEL.tag
520
 
web2py.gluon.html.LEGEND.tag
521
 
web2py.gluon.html.LI.tag
522
 
web2py.gluon.html.LINK.tag
523
 
web2py.gluon.html.MENU.tag
524
 
web2py.gluon.html.META.tag
525
 
web2py.gluon.html.OBJECT.tag
526
 
web2py.gluon.html.OL.tag
527
 
web2py.gluon.html.OPTGROUP.tag
528
 
web2py.gluon.html.OPTION.tag
529
 
web2py.gluon.html.P.tag
530
 
web2py.gluon.html.PRE.tag
531
 
web2py.gluon.html.SCRIPT.tag
532
 
web2py.gluon.html.SELECT.tag
533
 
web2py.gluon.html.SPAN.tag
534
 
web2py.gluon.html.STYLE.tag
535
 
web2py.gluon.html.TABLE.tag
536
 
web2py.gluon.html.TBODY.tag
537
 
web2py.gluon.html.TD.tag
538
 
web2py.gluon.html.TEXTAREA.tag
539
 
web2py.gluon.html.TFOOT.tag
540
 
web2py.gluon.html.TH.tag
541
 
web2py.gluon.html.THEAD.tag
542
 
web2py.gluon.html.TITLE.tag
543
 
web2py.gluon.html.TR.tag
544
 
web2py.gluon.html.TT.tag
545
 
web2py.gluon.html.UL.tag
546
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-12', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">:</tt> </tt>
 
448
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-name">bt</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-op">+</tt> <tt id="link-13" class="py-name"><a title="web2py.gluon.html.A.tag
 
449
web2py.gluon.html.B.tag
 
450
web2py.gluon.html.BEAUTIFY.tag
 
451
web2py.gluon.html.BODY.tag
 
452
web2py.gluon.html.BR.tag
 
453
web2py.gluon.html.BUTTON.tag
 
454
web2py.gluon.html.CAT.tag
 
455
web2py.gluon.html.CENTER.tag
 
456
web2py.gluon.html.COL.tag
 
457
web2py.gluon.html.COLGROUP.tag
 
458
web2py.gluon.html.DIV.tag
 
459
web2py.gluon.html.EM.tag
 
460
web2py.gluon.html.EMBED.tag
 
461
web2py.gluon.html.FIELDSET.tag
 
462
web2py.gluon.html.FORM.tag
 
463
web2py.gluon.html.H1.tag
 
464
web2py.gluon.html.H2.tag
 
465
web2py.gluon.html.H3.tag
 
466
web2py.gluon.html.H4.tag
 
467
web2py.gluon.html.H5.tag
 
468
web2py.gluon.html.H6.tag
 
469
web2py.gluon.html.HEAD.tag
 
470
web2py.gluon.html.HR.tag
 
471
web2py.gluon.html.HTML.tag
 
472
web2py.gluon.html.I.tag
 
473
web2py.gluon.html.IFRAME.tag
 
474
web2py.gluon.html.IMG.tag
 
475
web2py.gluon.html.INPUT.tag
 
476
web2py.gluon.html.LABEL.tag
 
477
web2py.gluon.html.LEGEND.tag
 
478
web2py.gluon.html.LI.tag
 
479
web2py.gluon.html.LINK.tag
 
480
web2py.gluon.html.MENU.tag
 
481
web2py.gluon.html.META.tag
 
482
web2py.gluon.html.OBJECT.tag
 
483
web2py.gluon.html.OL.tag
 
484
web2py.gluon.html.OPTGROUP.tag
 
485
web2py.gluon.html.OPTION.tag
 
486
web2py.gluon.html.P.tag
 
487
web2py.gluon.html.PRE.tag
 
488
web2py.gluon.html.SCRIPT.tag
 
489
web2py.gluon.html.SELECT.tag
 
490
web2py.gluon.html.SPAN.tag
 
491
web2py.gluon.html.STYLE.tag
 
492
web2py.gluon.html.TABLE.tag
 
493
web2py.gluon.html.TBODY.tag
 
494
web2py.gluon.html.TD.tag
 
495
web2py.gluon.html.TEXTAREA.tag
 
496
web2py.gluon.html.TFOOT.tag
 
497
web2py.gluon.html.TH.tag
 
498
web2py.gluon.html.THEAD.tag
 
499
web2py.gluon.html.TITLE.tag
 
500
web2py.gluon.html.TR.tag
 
501
web2py.gluon.html.TT.tag
 
502
web2py.gluon.html.UL.tag
 
503
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-13', 'tag', 'link-10');">tag</a></tt> </tt>
 
504
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="web2py.gluon.html.A.tag
 
505
web2py.gluon.html.B.tag
 
506
web2py.gluon.html.BEAUTIFY.tag
 
507
web2py.gluon.html.BODY.tag
 
508
web2py.gluon.html.BR.tag
 
509
web2py.gluon.html.BUTTON.tag
 
510
web2py.gluon.html.CAT.tag
 
511
web2py.gluon.html.CENTER.tag
 
512
web2py.gluon.html.COL.tag
 
513
web2py.gluon.html.COLGROUP.tag
 
514
web2py.gluon.html.DIV.tag
 
515
web2py.gluon.html.EM.tag
 
516
web2py.gluon.html.EMBED.tag
 
517
web2py.gluon.html.FIELDSET.tag
 
518
web2py.gluon.html.FORM.tag
 
519
web2py.gluon.html.H1.tag
 
520
web2py.gluon.html.H2.tag
 
521
web2py.gluon.html.H3.tag
 
522
web2py.gluon.html.H4.tag
 
523
web2py.gluon.html.H5.tag
 
524
web2py.gluon.html.H6.tag
 
525
web2py.gluon.html.HEAD.tag
 
526
web2py.gluon.html.HR.tag
 
527
web2py.gluon.html.HTML.tag
 
528
web2py.gluon.html.I.tag
 
529
web2py.gluon.html.IFRAME.tag
 
530
web2py.gluon.html.IMG.tag
 
531
web2py.gluon.html.INPUT.tag
 
532
web2py.gluon.html.LABEL.tag
 
533
web2py.gluon.html.LEGEND.tag
 
534
web2py.gluon.html.LI.tag
 
535
web2py.gluon.html.LINK.tag
 
536
web2py.gluon.html.MENU.tag
 
537
web2py.gluon.html.META.tag
 
538
web2py.gluon.html.OBJECT.tag
 
539
web2py.gluon.html.OL.tag
 
540
web2py.gluon.html.OPTGROUP.tag
 
541
web2py.gluon.html.OPTION.tag
 
542
web2py.gluon.html.P.tag
 
543
web2py.gluon.html.PRE.tag
 
544
web2py.gluon.html.SCRIPT.tag
 
545
web2py.gluon.html.SELECT.tag
 
546
web2py.gluon.html.SPAN.tag
 
547
web2py.gluon.html.STYLE.tag
 
548
web2py.gluon.html.TABLE.tag
 
549
web2py.gluon.html.TBODY.tag
 
550
web2py.gluon.html.TD.tag
 
551
web2py.gluon.html.TEXTAREA.tag
 
552
web2py.gluon.html.TFOOT.tag
 
553
web2py.gluon.html.TH.tag
 
554
web2py.gluon.html.THEAD.tag
 
555
web2py.gluon.html.TITLE.tag
 
556
web2py.gluon.html.TR.tag
 
557
web2py.gluon.html.TT.tag
 
558
web2py.gluon.html.UL.tag
 
559
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-14', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">:</tt> </tt>
547
560
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
548
 
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes_here</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-13" class="py-name" targets="Variable sqlite3.dbapi2.x=sqlite3.dbapi2-module.html#x"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-13', 'x', 'link-13');">x</a></tt> <tt class="py-keyword">for</tt> <tt id="link-14" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-14', 'x', 'link-13');">x</a></tt> <tt class="py-keyword">in</tt> </tt>
549
 
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">[</tt><tt id="link-15" class="py-name"><a title="web2py.gluon.html.A.tag
 
561
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes_here</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-15" class="py-name" targets="Variable sqlite3.dbapi2.x=sqlite3.dbapi2-module.html#x"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-15', 'x', 'link-15');">x</a></tt> <tt class="py-keyword">for</tt> <tt id="link-16" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-16', 'x', 'link-15');">x</a></tt> <tt class="py-keyword">in</tt> </tt>
 
562
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">[</tt><tt id="link-17" class="py-name"><a title="web2py.gluon.html.A.tag
550
563
web2py.gluon.html.B.tag
551
564
web2py.gluon.html.BEAUTIFY.tag
552
565
web2py.gluon.html.BODY.tag
601
614
web2py.gluon.html.TR.tag
602
615
web2py.gluon.html.TT.tag
603
616
web2py.gluon.html.UL.tag
604
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-15', 'tag', 'link-8');">tag</a></tt><tt class="py-op">]</tt> <tt class="py-keyword">if</tt> <tt id="link-16" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-16', 'x', 'link-13');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt> </tt>
605
 
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                         <tt class="py-keyword">and</tt> <tt id="link-17" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-17', 'len', 'link-4');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt id="link-18" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-18', 'x', 'link-13');">x</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
617
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-17', 'tag', 'link-10');">tag</a></tt><tt class="py-op">]</tt> <tt class="py-keyword">if</tt> <tt id="link-18" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-18', 'x', 'link-15');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt> </tt>
 
618
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                         <tt class="py-keyword">and</tt> <tt id="link-19" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-19', 'len', 'link-6');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt id="link-20" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-20', 'x', 'link-15');">x</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
606
619
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">attribute</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes_here</tt><tt class="py-op">:</tt> </tt>
607
620
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">attribute</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-string">'src'</tt><tt class="py-op">,</tt> <tt class="py-string">'background'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
608
 
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method web2py.gluon.sanitizer.XssCleaner.url_is_acceptable()=web2py.gluon.sanitizer.XssCleaner-class.html#url_is_acceptable"><a title="web2py.gluon.sanitizer.XssCleaner.url_is_acceptable" class="py-name" href="#" onclick="return doclink('link-19', 'url_is_acceptable', 'link-19');">url_is_acceptable</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attribute</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
621
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method web2py.gluon.sanitizer.XssCleaner.url_is_acceptable()=web2py.gluon.sanitizer.XssCleaner-class.html#url_is_acceptable"><a title="web2py.gluon.sanitizer.XssCleaner.url_is_acceptable" class="py-name" href="#" onclick="return doclink('link-21', 'url_is_acceptable', 'link-21');">url_is_acceptable</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attribute</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
609
622
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                            <tt class="py-name">bt</tt> <tt class="py-op">+=</tt> <tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">attribute</tt><tt class="py-op">,</tt> </tt>
610
623
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">                                    <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attribute</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
611
624
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
612
 
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                        <tt class="py-name">bt</tt> <tt class="py-op">+=</tt> <tt class="py-string">' %s=%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-20', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 
625
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                        <tt class="py-name">bt</tt> <tt class="py-op">+=</tt> <tt class="py-string">' %s=%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-22', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
613
626
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                                <tt class="py-name">quoteattr</tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attribute</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
614
627
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">bt</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;a'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">bt</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;img'</tt><tt class="py-op">:</tt> </tt>
615
628
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
616
 
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-21" class="py-name"><a title="web2py.gluon.html.A.tag
 
629
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name"><a title="web2py.gluon.html.A.tag
617
630
web2py.gluon.html.B.tag
618
631
web2py.gluon.html.BEAUTIFY.tag
619
632
web2py.gluon.html.BODY.tag
668
681
web2py.gluon.html.TR.tag
669
682
web2py.gluon.html.TT.tag
670
683
web2py.gluon.html.UL.tag
671
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-21', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requires_no_close</tt><tt class="py-op">:</tt> </tt>
 
684
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-23', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requires_no_close</tt><tt class="py-op">:</tt> </tt>
672
685
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">                <tt class="py-name">bt</tt> <tt class="py-op">+=</tt> <tt class="py-string">' /'</tt> </tt>
673
686
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">bt</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt;'</tt> </tt>
674
687
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">bt</tt> </tt>
675
 
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.insert()=web2py.gluon.dal.BaseAdapter-class.html#insert,Method web2py.gluon.dal.CouchDBAdapter.insert()=web2py.gluon.dal.CouchDBAdapter-class.html#insert,Method web2py.gluon.dal.GoogleDatastoreAdapter.insert()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#insert,Method web2py.gluon.dal.MongoDBAdapter.insert()=web2py.gluon.dal.MongoDBAdapter-class.html#insert,Method web2py.gluon.dal.Table.insert()=web2py.gluon.dal.Table-class.html#insert,Method web2py.gluon.html.DIV.insert()=web2py.gluon.html.DIV-class.html#insert,Method web2py.gluon.template.Content.insert()=web2py.gluon.template.Content-class.html#insert"><a title="web2py.gluon.dal.BaseAdapter.insert
 
688
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.insert()=web2py.gluon.dal.BaseAdapter-class.html#insert,Method web2py.gluon.dal.CouchDBAdapter.insert()=web2py.gluon.dal.CouchDBAdapter-class.html#insert,Method web2py.gluon.dal.GoogleDatastoreAdapter.insert()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#insert,Method web2py.gluon.dal.MongoDBAdapter.insert()=web2py.gluon.dal.MongoDBAdapter-class.html#insert,Method web2py.gluon.dal.Table.insert()=web2py.gluon.dal.Table-class.html#insert,Method web2py.gluon.html.DIV.insert()=web2py.gluon.html.DIV-class.html#insert,Method web2py.gluon.template.Content.insert()=web2py.gluon.template.Content-class.html#insert"><a title="web2py.gluon.dal.BaseAdapter.insert
676
689
web2py.gluon.dal.CouchDBAdapter.insert
677
690
web2py.gluon.dal.GoogleDatastoreAdapter.insert
678
691
web2py.gluon.dal.MongoDBAdapter.insert
679
692
web2py.gluon.dal.Table.insert
680
693
web2py.gluon.html.DIV.insert
681
 
web2py.gluon.template.Content.insert" class="py-name" href="#" onclick="return doclink('link-22', 'insert', 'link-22');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name"><a title="web2py.gluon.html.A.tag
 
694
web2py.gluon.template.Content.insert" class="py-name" href="#" onclick="return doclink('link-24', 'insert', 'link-24');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-25" class="py-name"><a title="web2py.gluon.html.A.tag
682
695
web2py.gluon.html.B.tag
683
696
web2py.gluon.html.BEAUTIFY.tag
684
697
web2py.gluon.html.BODY.tag
733
746
web2py.gluon.html.TR.tag
734
747
web2py.gluon.html.TT.tag
735
748
web2py.gluon.html.UL.tag
736
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-23', 'tag', 'link-8');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
749
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-25', 'tag', 'link-10');">tag</a></tt><tt class="py-op">)</tt> </tt>
737
750
</div><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
738
751
<a name="XssCleaner.handle_endtag"></a><div id="XssCleaner.handle_endtag-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="XssCleaner.handle_endtag-toggle" onclick="return toggle('XssCleaner.handle_endtag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#handle_endtag">handle_endtag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
739
 
</div><div id="XssCleaner.handle_endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_endtag-expanded"><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-name">bracketed</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-24" class="py-name"><a title="web2py.gluon.html.A.tag
740
 
web2py.gluon.html.B.tag
741
 
web2py.gluon.html.BEAUTIFY.tag
742
 
web2py.gluon.html.BODY.tag
743
 
web2py.gluon.html.BR.tag
744
 
web2py.gluon.html.BUTTON.tag
745
 
web2py.gluon.html.CAT.tag
746
 
web2py.gluon.html.CENTER.tag
747
 
web2py.gluon.html.COL.tag
748
 
web2py.gluon.html.COLGROUP.tag
749
 
web2py.gluon.html.DIV.tag
750
 
web2py.gluon.html.EM.tag
751
 
web2py.gluon.html.EMBED.tag
752
 
web2py.gluon.html.FIELDSET.tag
753
 
web2py.gluon.html.FORM.tag
754
 
web2py.gluon.html.H1.tag
755
 
web2py.gluon.html.H2.tag
756
 
web2py.gluon.html.H3.tag
757
 
web2py.gluon.html.H4.tag
758
 
web2py.gluon.html.H5.tag
759
 
web2py.gluon.html.H6.tag
760
 
web2py.gluon.html.HEAD.tag
761
 
web2py.gluon.html.HR.tag
762
 
web2py.gluon.html.HTML.tag
763
 
web2py.gluon.html.I.tag
764
 
web2py.gluon.html.IFRAME.tag
765
 
web2py.gluon.html.IMG.tag
766
 
web2py.gluon.html.INPUT.tag
767
 
web2py.gluon.html.LABEL.tag
768
 
web2py.gluon.html.LEGEND.tag
769
 
web2py.gluon.html.LI.tag
770
 
web2py.gluon.html.LINK.tag
771
 
web2py.gluon.html.MENU.tag
772
 
web2py.gluon.html.META.tag
773
 
web2py.gluon.html.OBJECT.tag
774
 
web2py.gluon.html.OL.tag
775
 
web2py.gluon.html.OPTGROUP.tag
776
 
web2py.gluon.html.OPTION.tag
777
 
web2py.gluon.html.P.tag
778
 
web2py.gluon.html.PRE.tag
779
 
web2py.gluon.html.SCRIPT.tag
780
 
web2py.gluon.html.SELECT.tag
781
 
web2py.gluon.html.SPAN.tag
782
 
web2py.gluon.html.STYLE.tag
783
 
web2py.gluon.html.TABLE.tag
784
 
web2py.gluon.html.TBODY.tag
785
 
web2py.gluon.html.TD.tag
786
 
web2py.gluon.html.TEXTAREA.tag
787
 
web2py.gluon.html.TFOOT.tag
788
 
web2py.gluon.html.TH.tag
789
 
web2py.gluon.html.THEAD.tag
790
 
web2py.gluon.html.TITLE.tag
791
 
web2py.gluon.html.TR.tag
792
 
web2py.gluon.html.TT.tag
793
 
web2py.gluon.html.UL.tag
794
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-24', 'tag', 'link-8');">tag</a></tt> </tt>
795
 
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-25" class="py-name"><a title="web2py.gluon.html.A.tag
796
 
web2py.gluon.html.B.tag
797
 
web2py.gluon.html.BEAUTIFY.tag
798
 
web2py.gluon.html.BODY.tag
799
 
web2py.gluon.html.BR.tag
800
 
web2py.gluon.html.BUTTON.tag
801
 
web2py.gluon.html.CAT.tag
802
 
web2py.gluon.html.CENTER.tag
803
 
web2py.gluon.html.COL.tag
804
 
web2py.gluon.html.COLGROUP.tag
805
 
web2py.gluon.html.DIV.tag
806
 
web2py.gluon.html.EM.tag
807
 
web2py.gluon.html.EMBED.tag
808
 
web2py.gluon.html.FIELDSET.tag
809
 
web2py.gluon.html.FORM.tag
810
 
web2py.gluon.html.H1.tag
811
 
web2py.gluon.html.H2.tag
812
 
web2py.gluon.html.H3.tag
813
 
web2py.gluon.html.H4.tag
814
 
web2py.gluon.html.H5.tag
815
 
web2py.gluon.html.H6.tag
816
 
web2py.gluon.html.HEAD.tag
817
 
web2py.gluon.html.HR.tag
818
 
web2py.gluon.html.HTML.tag
819
 
web2py.gluon.html.I.tag
820
 
web2py.gluon.html.IFRAME.tag
821
 
web2py.gluon.html.IMG.tag
822
 
web2py.gluon.html.INPUT.tag
823
 
web2py.gluon.html.LABEL.tag
824
 
web2py.gluon.html.LEGEND.tag
825
 
web2py.gluon.html.LI.tag
826
 
web2py.gluon.html.LINK.tag
827
 
web2py.gluon.html.MENU.tag
828
 
web2py.gluon.html.META.tag
829
 
web2py.gluon.html.OBJECT.tag
830
 
web2py.gluon.html.OL.tag
831
 
web2py.gluon.html.OPTGROUP.tag
832
 
web2py.gluon.html.OPTION.tag
833
 
web2py.gluon.html.P.tag
834
 
web2py.gluon.html.PRE.tag
835
 
web2py.gluon.html.SCRIPT.tag
836
 
web2py.gluon.html.SELECT.tag
837
 
web2py.gluon.html.SPAN.tag
838
 
web2py.gluon.html.STYLE.tag
839
 
web2py.gluon.html.TABLE.tag
840
 
web2py.gluon.html.TBODY.tag
841
 
web2py.gluon.html.TD.tag
842
 
web2py.gluon.html.TEXTAREA.tag
843
 
web2py.gluon.html.TFOOT.tag
844
 
web2py.gluon.html.TH.tag
845
 
web2py.gluon.html.THEAD.tag
846
 
web2py.gluon.html.TITLE.tag
847
 
web2py.gluon.html.TR.tag
848
 
web2py.gluon.html.TT.tag
849
 
web2py.gluon.html.UL.tag
850
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-25', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">:</tt> </tt>
 
752
</div><div id="XssCleaner.handle_endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.handle_endtag-expanded"><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-name">bracketed</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-26" class="py-name"><a title="web2py.gluon.html.A.tag
 
753
web2py.gluon.html.B.tag
 
754
web2py.gluon.html.BEAUTIFY.tag
 
755
web2py.gluon.html.BODY.tag
 
756
web2py.gluon.html.BR.tag
 
757
web2py.gluon.html.BUTTON.tag
 
758
web2py.gluon.html.CAT.tag
 
759
web2py.gluon.html.CENTER.tag
 
760
web2py.gluon.html.COL.tag
 
761
web2py.gluon.html.COLGROUP.tag
 
762
web2py.gluon.html.DIV.tag
 
763
web2py.gluon.html.EM.tag
 
764
web2py.gluon.html.EMBED.tag
 
765
web2py.gluon.html.FIELDSET.tag
 
766
web2py.gluon.html.FORM.tag
 
767
web2py.gluon.html.H1.tag
 
768
web2py.gluon.html.H2.tag
 
769
web2py.gluon.html.H3.tag
 
770
web2py.gluon.html.H4.tag
 
771
web2py.gluon.html.H5.tag
 
772
web2py.gluon.html.H6.tag
 
773
web2py.gluon.html.HEAD.tag
 
774
web2py.gluon.html.HR.tag
 
775
web2py.gluon.html.HTML.tag
 
776
web2py.gluon.html.I.tag
 
777
web2py.gluon.html.IFRAME.tag
 
778
web2py.gluon.html.IMG.tag
 
779
web2py.gluon.html.INPUT.tag
 
780
web2py.gluon.html.LABEL.tag
 
781
web2py.gluon.html.LEGEND.tag
 
782
web2py.gluon.html.LI.tag
 
783
web2py.gluon.html.LINK.tag
 
784
web2py.gluon.html.MENU.tag
 
785
web2py.gluon.html.META.tag
 
786
web2py.gluon.html.OBJECT.tag
 
787
web2py.gluon.html.OL.tag
 
788
web2py.gluon.html.OPTGROUP.tag
 
789
web2py.gluon.html.OPTION.tag
 
790
web2py.gluon.html.P.tag
 
791
web2py.gluon.html.PRE.tag
 
792
web2py.gluon.html.SCRIPT.tag
 
793
web2py.gluon.html.SELECT.tag
 
794
web2py.gluon.html.SPAN.tag
 
795
web2py.gluon.html.STYLE.tag
 
796
web2py.gluon.html.TABLE.tag
 
797
web2py.gluon.html.TBODY.tag
 
798
web2py.gluon.html.TD.tag
 
799
web2py.gluon.html.TEXTAREA.tag
 
800
web2py.gluon.html.TFOOT.tag
 
801
web2py.gluon.html.TH.tag
 
802
web2py.gluon.html.THEAD.tag
 
803
web2py.gluon.html.TITLE.tag
 
804
web2py.gluon.html.TR.tag
 
805
web2py.gluon.html.TT.tag
 
806
web2py.gluon.html.UL.tag
 
807
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-26', 'tag', 'link-10');">tag</a></tt> </tt>
 
808
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-27" class="py-name"><a title="web2py.gluon.html.A.tag
 
809
web2py.gluon.html.B.tag
 
810
web2py.gluon.html.BEAUTIFY.tag
 
811
web2py.gluon.html.BODY.tag
 
812
web2py.gluon.html.BR.tag
 
813
web2py.gluon.html.BUTTON.tag
 
814
web2py.gluon.html.CAT.tag
 
815
web2py.gluon.html.CENTER.tag
 
816
web2py.gluon.html.COL.tag
 
817
web2py.gluon.html.COLGROUP.tag
 
818
web2py.gluon.html.DIV.tag
 
819
web2py.gluon.html.EM.tag
 
820
web2py.gluon.html.EMBED.tag
 
821
web2py.gluon.html.FIELDSET.tag
 
822
web2py.gluon.html.FORM.tag
 
823
web2py.gluon.html.H1.tag
 
824
web2py.gluon.html.H2.tag
 
825
web2py.gluon.html.H3.tag
 
826
web2py.gluon.html.H4.tag
 
827
web2py.gluon.html.H5.tag
 
828
web2py.gluon.html.H6.tag
 
829
web2py.gluon.html.HEAD.tag
 
830
web2py.gluon.html.HR.tag
 
831
web2py.gluon.html.HTML.tag
 
832
web2py.gluon.html.I.tag
 
833
web2py.gluon.html.IFRAME.tag
 
834
web2py.gluon.html.IMG.tag
 
835
web2py.gluon.html.INPUT.tag
 
836
web2py.gluon.html.LABEL.tag
 
837
web2py.gluon.html.LEGEND.tag
 
838
web2py.gluon.html.LI.tag
 
839
web2py.gluon.html.LINK.tag
 
840
web2py.gluon.html.MENU.tag
 
841
web2py.gluon.html.META.tag
 
842
web2py.gluon.html.OBJECT.tag
 
843
web2py.gluon.html.OL.tag
 
844
web2py.gluon.html.OPTGROUP.tag
 
845
web2py.gluon.html.OPTION.tag
 
846
web2py.gluon.html.P.tag
 
847
web2py.gluon.html.PRE.tag
 
848
web2py.gluon.html.SCRIPT.tag
 
849
web2py.gluon.html.SELECT.tag
 
850
web2py.gluon.html.SPAN.tag
 
851
web2py.gluon.html.STYLE.tag
 
852
web2py.gluon.html.TABLE.tag
 
853
web2py.gluon.html.TBODY.tag
 
854
web2py.gluon.html.TD.tag
 
855
web2py.gluon.html.TEXTAREA.tag
 
856
web2py.gluon.html.TFOOT.tag
 
857
web2py.gluon.html.TH.tag
 
858
web2py.gluon.html.THEAD.tag
 
859
web2py.gluon.html.TITLE.tag
 
860
web2py.gluon.html.TR.tag
 
861
web2py.gluon.html.TT.tag
 
862
web2py.gluon.html.UL.tag
 
863
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-27', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">:</tt> </tt>
851
864
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">strip_disallowed</tt><tt class="py-op">:</tt> </tt>
852
865
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_disallowed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
853
866
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
854
 
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-26" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-26', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">bracketed</tt><tt class="py-op">)</tt> </tt>
855
 
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-27" class="py-name"><a title="web2py.gluon.html.A.tag
 
867
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt id="link-28" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-28', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">bracketed</tt><tt class="py-op">)</tt> </tt>
 
868
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-29" class="py-name"><a title="web2py.gluon.html.A.tag
856
869
web2py.gluon.html.B.tag
857
870
web2py.gluon.html.BEAUTIFY.tag
858
871
web2py.gluon.html.BODY.tag
907
920
web2py.gluon.html.TR.tag
908
921
web2py.gluon.html.TT.tag
909
922
web2py.gluon.html.UL.tag
910
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-27', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">:</tt> </tt>
 
923
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-29', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">:</tt> </tt>
911
924
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">bracketed</tt> </tt>
912
 
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="web2py.gluon.html.A.tag
 
925
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">open_tags</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="web2py.gluon.html.A.tag
913
926
web2py.gluon.html.B.tag
914
927
web2py.gluon.html.BEAUTIFY.tag
915
928
web2py.gluon.html.BODY.tag
964
977
web2py.gluon.html.TR.tag
965
978
web2py.gluon.html.TT.tag
966
979
web2py.gluon.html.UL.tag
967
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-28', 'tag', 'link-8');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
980
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-30', 'tag', 'link-10');">tag</a></tt><tt class="py-op">)</tt> </tt>
968
981
</div><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt>
969
982
<a name="XssCleaner.unknown_starttag"></a><div id="XssCleaner.unknown_starttag-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="XssCleaner.unknown_starttag-toggle" onclick="return toggle('XssCleaner.unknown_starttag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#unknown_starttag">unknown_starttag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
970
 
</div><div id="XssCleaner.unknown_starttag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.unknown_starttag-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method web2py.gluon.html.web2pyHTMLParser.handle_starttag()=web2py.gluon.html.web2pyHTMLParser-class.html#handle_starttag,Method web2py.gluon.sanitizer.XssCleaner.handle_starttag()=web2py.gluon.sanitizer.XssCleaner-class.html#handle_starttag"><a title="web2py.gluon.html.web2pyHTMLParser.handle_starttag
971
 
web2py.gluon.sanitizer.XssCleaner.handle_starttag" class="py-name" href="#" onclick="return doclink('link-29', 'handle_starttag', 'link-29');">handle_starttag</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="web2py.gluon.html.A.tag
 
983
</div><div id="XssCleaner.unknown_starttag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.unknown_starttag-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method web2py.gluon.html.web2pyHTMLParser.handle_starttag()=web2py.gluon.html.web2pyHTMLParser-class.html#handle_starttag,Method web2py.gluon.sanitizer.XssCleaner.handle_starttag()=web2py.gluon.sanitizer.XssCleaner-class.html#handle_starttag"><a title="web2py.gluon.html.web2pyHTMLParser.handle_starttag
 
984
web2py.gluon.sanitizer.XssCleaner.handle_starttag" class="py-name" href="#" onclick="return doclink('link-31', 'handle_starttag', 'link-31');">handle_starttag</a></tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="web2py.gluon.html.A.tag
972
985
web2py.gluon.html.B.tag
973
986
web2py.gluon.html.BEAUTIFY.tag
974
987
web2py.gluon.html.BODY.tag
1023
1036
web2py.gluon.html.TR.tag
1024
1037
web2py.gluon.html.TT.tag
1025
1038
web2py.gluon.html.UL.tag
1026
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-30', 'tag', 'link-8');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
1039
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-32', 'tag', 'link-10');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
1027
1040
</div><a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
1028
1041
<a name="XssCleaner.unknown_endtag"></a><div id="XssCleaner.unknown_endtag-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="XssCleaner.unknown_endtag-toggle" onclick="return toggle('XssCleaner.unknown_endtag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#unknown_endtag">unknown_endtag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1029
 
</div><div id="XssCleaner.unknown_endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.unknown_endtag-expanded"><a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method web2py.gluon.html.web2pyHTMLParser.handle_endtag()=web2py.gluon.html.web2pyHTMLParser-class.html#handle_endtag,Method web2py.gluon.sanitizer.XssCleaner.handle_endtag()=web2py.gluon.sanitizer.XssCleaner-class.html#handle_endtag"><a title="web2py.gluon.html.web2pyHTMLParser.handle_endtag
1030
 
web2py.gluon.sanitizer.XssCleaner.handle_endtag" class="py-name" href="#" onclick="return doclink('link-31', 'handle_endtag', 'link-31');">handle_endtag</a></tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="web2py.gluon.html.A.tag
 
1042
</div><div id="XssCleaner.unknown_endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.unknown_endtag-expanded"><a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method web2py.gluon.html.web2pyHTMLParser.handle_endtag()=web2py.gluon.html.web2pyHTMLParser-class.html#handle_endtag,Method web2py.gluon.sanitizer.XssCleaner.handle_endtag()=web2py.gluon.sanitizer.XssCleaner-class.html#handle_endtag"><a title="web2py.gluon.html.web2pyHTMLParser.handle_endtag
 
1043
web2py.gluon.sanitizer.XssCleaner.handle_endtag" class="py-name" href="#" onclick="return doclink('link-33', 'handle_endtag', 'link-33');">handle_endtag</a></tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="web2py.gluon.html.A.tag
1031
1044
web2py.gluon.html.B.tag
1032
1045
web2py.gluon.html.BEAUTIFY.tag
1033
1046
web2py.gluon.html.BODY.tag
1082
1095
web2py.gluon.html.TR.tag
1083
1096
web2py.gluon.html.TT.tag
1084
1097
web2py.gluon.html.UL.tag
1085
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-32', 'tag', 'link-8');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
1098
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-34', 'tag', 'link-10');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
1086
1099
</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
1087
1100
<a name="XssCleaner.url_is_acceptable"></a><div id="XssCleaner.url_is_acceptable-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="XssCleaner.url_is_acceptable-toggle" onclick="return toggle('XssCleaner.url_is_acceptable');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#url_is_acceptable">url_is_acceptable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1088
1101
</div><div id="XssCleaner.url_is_acceptable-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.url_is_acceptable-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1089
1102
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        Accepts relative and absolute urls</tt> </tt>
1090
1103
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1091
1104
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
1092
 
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name" targets="Method web2py.gluon.tools.Auth.url()=web2py.gluon.tools.Auth-class.html#url,Method web2py.gluon.tools.Crud.url()=web2py.gluon.tools.Crud-class.html#url"><a title="web2py.gluon.tools.Auth.url
1093
 
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-33', 'url', 'link-33');">url</a></tt><tt class="py-op">)</tt> </tt>
 
1105
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name" targets="Method web2py.gluon.tools.Auth.url()=web2py.gluon.tools.Auth-class.html#url,Method web2py.gluon.tools.Crud.url()=web2py.gluon.tools.Crud-class.html#url"><a title="web2py.gluon.tools.Auth.url
 
1106
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-35', 'url', 'link-35');">url</a></tt><tt class="py-op">)</tt> </tt>
1094
1107
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_schemes</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> \ </tt>
1095
 
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method web2py.gluon.dal.Expression.startswith()=web2py.gluon.dal.Expression-class.html#startswith,Method web2py.gluon.dal.SQLCustomType.startswith()=web2py.gluon.dal.SQLCustomType-class.html#startswith"><a title="web2py.gluon.dal.Expression.startswith
1096
 
web2py.gluon.dal.SQLCustomType.startswith" class="py-name" href="#" onclick="return doclink('link-34', 'startswith', 'link-34');">startswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
1108
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt> <tt class="py-keyword">and</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method web2py.gluon.dal.Expression.startswith()=web2py.gluon.dal.Expression-class.html#startswith,Method web2py.gluon.dal.SQLCustomType.startswith()=web2py.gluon.dal.SQLCustomType-class.html#startswith"><a title="web2py.gluon.dal.Expression.startswith
 
1109
web2py.gluon.dal.SQLCustomType.startswith" class="py-name" href="#" onclick="return doclink('link-36', 'startswith', 'link-36');">startswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
1097
1110
</div><a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"> </tt>
1098
1111
<a name="XssCleaner.strip"></a><div id="XssCleaner.strip-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="XssCleaner.strip-toggle" onclick="return toggle('XssCleaner.strip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer.XssCleaner-class.html#strip">strip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">rawstring</tt><tt class="py-op">,</tt> <tt class="py-param">escape</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1099
1112
</div><div id="XssCleaner.strip-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XssCleaner.strip-expanded"><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1106
1119
<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1107
1120
<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
1108
1121
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">rawstring</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">rawstring</tt><tt class="py-op">)</tt> </tt>
1109
 
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-35" class="py-name"><a title="web2py.gluon.html.A.tag
1110
 
web2py.gluon.html.B.tag
1111
 
web2py.gluon.html.BEAUTIFY.tag
1112
 
web2py.gluon.html.BODY.tag
1113
 
web2py.gluon.html.BR.tag
1114
 
web2py.gluon.html.BUTTON.tag
1115
 
web2py.gluon.html.CAT.tag
1116
 
web2py.gluon.html.CENTER.tag
1117
 
web2py.gluon.html.COL.tag
1118
 
web2py.gluon.html.COLGROUP.tag
1119
 
web2py.gluon.html.DIV.tag
1120
 
web2py.gluon.html.EM.tag
1121
 
web2py.gluon.html.EMBED.tag
1122
 
web2py.gluon.html.FIELDSET.tag
1123
 
web2py.gluon.html.FORM.tag
1124
 
web2py.gluon.html.H1.tag
1125
 
web2py.gluon.html.H2.tag
1126
 
web2py.gluon.html.H3.tag
1127
 
web2py.gluon.html.H4.tag
1128
 
web2py.gluon.html.H5.tag
1129
 
web2py.gluon.html.H6.tag
1130
 
web2py.gluon.html.HEAD.tag
1131
 
web2py.gluon.html.HR.tag
1132
 
web2py.gluon.html.HTML.tag
1133
 
web2py.gluon.html.I.tag
1134
 
web2py.gluon.html.IFRAME.tag
1135
 
web2py.gluon.html.IMG.tag
1136
 
web2py.gluon.html.INPUT.tag
1137
 
web2py.gluon.html.LABEL.tag
1138
 
web2py.gluon.html.LEGEND.tag
1139
 
web2py.gluon.html.LI.tag
1140
 
web2py.gluon.html.LINK.tag
1141
 
web2py.gluon.html.MENU.tag
1142
 
web2py.gluon.html.META.tag
1143
 
web2py.gluon.html.OBJECT.tag
1144
 
web2py.gluon.html.OL.tag
1145
 
web2py.gluon.html.OPTGROUP.tag
1146
 
web2py.gluon.html.OPTION.tag
1147
 
web2py.gluon.html.P.tag
1148
 
web2py.gluon.html.PRE.tag
1149
 
web2py.gluon.html.SCRIPT.tag
1150
 
web2py.gluon.html.SELECT.tag
1151
 
web2py.gluon.html.SPAN.tag
1152
 
web2py.gluon.html.STYLE.tag
1153
 
web2py.gluon.html.TABLE.tag
1154
 
web2py.gluon.html.TBODY.tag
1155
 
web2py.gluon.html.TD.tag
1156
 
web2py.gluon.html.TEXTAREA.tag
1157
 
web2py.gluon.html.TFOOT.tag
1158
 
web2py.gluon.html.TH.tag
1159
 
web2py.gluon.html.THEAD.tag
1160
 
web2py.gluon.html.TITLE.tag
1161
 
web2py.gluon.html.TR.tag
1162
 
web2py.gluon.html.TT.tag
1163
 
web2py.gluon.html.UL.tag
1164
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-35', 'tag', 'link-8');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requires_no_close</tt><tt class="py-op">:</tt> </tt>
1165
 
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt class="py-name">rawstring</tt> <tt class="py-op">=</tt> <tt class="py-name">rawstring</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;%s/&gt;"</tt> <tt class="py-op">%</tt> <tt id="link-36" class="py-name"><a title="web2py.gluon.html.A.tag
1166
 
web2py.gluon.html.B.tag
1167
 
web2py.gluon.html.BEAUTIFY.tag
1168
 
web2py.gluon.html.BODY.tag
1169
 
web2py.gluon.html.BR.tag
1170
 
web2py.gluon.html.BUTTON.tag
1171
 
web2py.gluon.html.CAT.tag
1172
 
web2py.gluon.html.CENTER.tag
1173
 
web2py.gluon.html.COL.tag
1174
 
web2py.gluon.html.COLGROUP.tag
1175
 
web2py.gluon.html.DIV.tag
1176
 
web2py.gluon.html.EM.tag
1177
 
web2py.gluon.html.EMBED.tag
1178
 
web2py.gluon.html.FIELDSET.tag
1179
 
web2py.gluon.html.FORM.tag
1180
 
web2py.gluon.html.H1.tag
1181
 
web2py.gluon.html.H2.tag
1182
 
web2py.gluon.html.H3.tag
1183
 
web2py.gluon.html.H4.tag
1184
 
web2py.gluon.html.H5.tag
1185
 
web2py.gluon.html.H6.tag
1186
 
web2py.gluon.html.HEAD.tag
1187
 
web2py.gluon.html.HR.tag
1188
 
web2py.gluon.html.HTML.tag
1189
 
web2py.gluon.html.I.tag
1190
 
web2py.gluon.html.IFRAME.tag
1191
 
web2py.gluon.html.IMG.tag
1192
 
web2py.gluon.html.INPUT.tag
1193
 
web2py.gluon.html.LABEL.tag
1194
 
web2py.gluon.html.LEGEND.tag
1195
 
web2py.gluon.html.LI.tag
1196
 
web2py.gluon.html.LINK.tag
1197
 
web2py.gluon.html.MENU.tag
1198
 
web2py.gluon.html.META.tag
1199
 
web2py.gluon.html.OBJECT.tag
1200
 
web2py.gluon.html.OL.tag
1201
 
web2py.gluon.html.OPTGROUP.tag
1202
 
web2py.gluon.html.OPTION.tag
1203
 
web2py.gluon.html.P.tag
1204
 
web2py.gluon.html.PRE.tag
1205
 
web2py.gluon.html.SCRIPT.tag
1206
 
web2py.gluon.html.SELECT.tag
1207
 
web2py.gluon.html.SPAN.tag
1208
 
web2py.gluon.html.STYLE.tag
1209
 
web2py.gluon.html.TABLE.tag
1210
 
web2py.gluon.html.TBODY.tag
1211
 
web2py.gluon.html.TD.tag
1212
 
web2py.gluon.html.TEXTAREA.tag
1213
 
web2py.gluon.html.TFOOT.tag
1214
 
web2py.gluon.html.TH.tag
1215
 
web2py.gluon.html.THEAD.tag
1216
 
web2py.gluon.html.TITLE.tag
1217
 
web2py.gluon.html.TR.tag
1218
 
web2py.gluon.html.TT.tag
1219
 
web2py.gluon.html.UL.tag
1220
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-36', 'tag', 'link-8');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;%s /&gt;"</tt> <tt class="py-op">%</tt> <tt id="link-37" class="py-name"><a title="web2py.gluon.html.A.tag
1221
 
web2py.gluon.html.B.tag
1222
 
web2py.gluon.html.BEAUTIFY.tag
1223
 
web2py.gluon.html.BODY.tag
1224
 
web2py.gluon.html.BR.tag
1225
 
web2py.gluon.html.BUTTON.tag
1226
 
web2py.gluon.html.CAT.tag
1227
 
web2py.gluon.html.CENTER.tag
1228
 
web2py.gluon.html.COL.tag
1229
 
web2py.gluon.html.COLGROUP.tag
1230
 
web2py.gluon.html.DIV.tag
1231
 
web2py.gluon.html.EM.tag
1232
 
web2py.gluon.html.EMBED.tag
1233
 
web2py.gluon.html.FIELDSET.tag
1234
 
web2py.gluon.html.FORM.tag
1235
 
web2py.gluon.html.H1.tag
1236
 
web2py.gluon.html.H2.tag
1237
 
web2py.gluon.html.H3.tag
1238
 
web2py.gluon.html.H4.tag
1239
 
web2py.gluon.html.H5.tag
1240
 
web2py.gluon.html.H6.tag
1241
 
web2py.gluon.html.HEAD.tag
1242
 
web2py.gluon.html.HR.tag
1243
 
web2py.gluon.html.HTML.tag
1244
 
web2py.gluon.html.I.tag
1245
 
web2py.gluon.html.IFRAME.tag
1246
 
web2py.gluon.html.IMG.tag
1247
 
web2py.gluon.html.INPUT.tag
1248
 
web2py.gluon.html.LABEL.tag
1249
 
web2py.gluon.html.LEGEND.tag
1250
 
web2py.gluon.html.LI.tag
1251
 
web2py.gluon.html.LINK.tag
1252
 
web2py.gluon.html.MENU.tag
1253
 
web2py.gluon.html.META.tag
1254
 
web2py.gluon.html.OBJECT.tag
1255
 
web2py.gluon.html.OL.tag
1256
 
web2py.gluon.html.OPTGROUP.tag
1257
 
web2py.gluon.html.OPTION.tag
1258
 
web2py.gluon.html.P.tag
1259
 
web2py.gluon.html.PRE.tag
1260
 
web2py.gluon.html.SCRIPT.tag
1261
 
web2py.gluon.html.SELECT.tag
1262
 
web2py.gluon.html.SPAN.tag
1263
 
web2py.gluon.html.STYLE.tag
1264
 
web2py.gluon.html.TABLE.tag
1265
 
web2py.gluon.html.TBODY.tag
1266
 
web2py.gluon.html.TD.tag
1267
 
web2py.gluon.html.TEXTAREA.tag
1268
 
web2py.gluon.html.TFOOT.tag
1269
 
web2py.gluon.html.TH.tag
1270
 
web2py.gluon.html.THEAD.tag
1271
 
web2py.gluon.html.TITLE.tag
1272
 
web2py.gluon.html.TR.tag
1273
 
web2py.gluon.html.TT.tag
1274
 
web2py.gluon.html.UL.tag
1275
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-37', 'tag', 'link-8');">tag</a></tt><tt class="py-op">)</tt> </tt>
1276
 
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">escape</tt><tt class="py-op">:</tt> </tt>
 
1122
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-37" class="py-name"><a title="web2py.gluon.html.A.tag
 
1123
web2py.gluon.html.B.tag
 
1124
web2py.gluon.html.BEAUTIFY.tag
 
1125
web2py.gluon.html.BODY.tag
 
1126
web2py.gluon.html.BR.tag
 
1127
web2py.gluon.html.BUTTON.tag
 
1128
web2py.gluon.html.CAT.tag
 
1129
web2py.gluon.html.CENTER.tag
 
1130
web2py.gluon.html.COL.tag
 
1131
web2py.gluon.html.COLGROUP.tag
 
1132
web2py.gluon.html.DIV.tag
 
1133
web2py.gluon.html.EM.tag
 
1134
web2py.gluon.html.EMBED.tag
 
1135
web2py.gluon.html.FIELDSET.tag
 
1136
web2py.gluon.html.FORM.tag
 
1137
web2py.gluon.html.H1.tag
 
1138
web2py.gluon.html.H2.tag
 
1139
web2py.gluon.html.H3.tag
 
1140
web2py.gluon.html.H4.tag
 
1141
web2py.gluon.html.H5.tag
 
1142
web2py.gluon.html.H6.tag
 
1143
web2py.gluon.html.HEAD.tag
 
1144
web2py.gluon.html.HR.tag
 
1145
web2py.gluon.html.HTML.tag
 
1146
web2py.gluon.html.I.tag
 
1147
web2py.gluon.html.IFRAME.tag
 
1148
web2py.gluon.html.IMG.tag
 
1149
web2py.gluon.html.INPUT.tag
 
1150
web2py.gluon.html.LABEL.tag
 
1151
web2py.gluon.html.LEGEND.tag
 
1152
web2py.gluon.html.LI.tag
 
1153
web2py.gluon.html.LINK.tag
 
1154
web2py.gluon.html.MENU.tag
 
1155
web2py.gluon.html.META.tag
 
1156
web2py.gluon.html.OBJECT.tag
 
1157
web2py.gluon.html.OL.tag
 
1158
web2py.gluon.html.OPTGROUP.tag
 
1159
web2py.gluon.html.OPTION.tag
 
1160
web2py.gluon.html.P.tag
 
1161
web2py.gluon.html.PRE.tag
 
1162
web2py.gluon.html.SCRIPT.tag
 
1163
web2py.gluon.html.SELECT.tag
 
1164
web2py.gluon.html.SPAN.tag
 
1165
web2py.gluon.html.STYLE.tag
 
1166
web2py.gluon.html.TABLE.tag
 
1167
web2py.gluon.html.TBODY.tag
 
1168
web2py.gluon.html.TD.tag
 
1169
web2py.gluon.html.TEXTAREA.tag
 
1170
web2py.gluon.html.TFOOT.tag
 
1171
web2py.gluon.html.TH.tag
 
1172
web2py.gluon.html.THEAD.tag
 
1173
web2py.gluon.html.TITLE.tag
 
1174
web2py.gluon.html.TR.tag
 
1175
web2py.gluon.html.TT.tag
 
1176
web2py.gluon.html.UL.tag
 
1177
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-37', 'tag', 'link-10');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requires_no_close</tt><tt class="py-op">:</tt> </tt>
 
1178
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt class="py-name">rawstring</tt> <tt class="py-op">=</tt> <tt class="py-name">rawstring</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;%s/&gt;"</tt> <tt class="py-op">%</tt> <tt id="link-38" class="py-name"><a title="web2py.gluon.html.A.tag
 
1179
web2py.gluon.html.B.tag
 
1180
web2py.gluon.html.BEAUTIFY.tag
 
1181
web2py.gluon.html.BODY.tag
 
1182
web2py.gluon.html.BR.tag
 
1183
web2py.gluon.html.BUTTON.tag
 
1184
web2py.gluon.html.CAT.tag
 
1185
web2py.gluon.html.CENTER.tag
 
1186
web2py.gluon.html.COL.tag
 
1187
web2py.gluon.html.COLGROUP.tag
 
1188
web2py.gluon.html.DIV.tag
 
1189
web2py.gluon.html.EM.tag
 
1190
web2py.gluon.html.EMBED.tag
 
1191
web2py.gluon.html.FIELDSET.tag
 
1192
web2py.gluon.html.FORM.tag
 
1193
web2py.gluon.html.H1.tag
 
1194
web2py.gluon.html.H2.tag
 
1195
web2py.gluon.html.H3.tag
 
1196
web2py.gluon.html.H4.tag
 
1197
web2py.gluon.html.H5.tag
 
1198
web2py.gluon.html.H6.tag
 
1199
web2py.gluon.html.HEAD.tag
 
1200
web2py.gluon.html.HR.tag
 
1201
web2py.gluon.html.HTML.tag
 
1202
web2py.gluon.html.I.tag
 
1203
web2py.gluon.html.IFRAME.tag
 
1204
web2py.gluon.html.IMG.tag
 
1205
web2py.gluon.html.INPUT.tag
 
1206
web2py.gluon.html.LABEL.tag
 
1207
web2py.gluon.html.LEGEND.tag
 
1208
web2py.gluon.html.LI.tag
 
1209
web2py.gluon.html.LINK.tag
 
1210
web2py.gluon.html.MENU.tag
 
1211
web2py.gluon.html.META.tag
 
1212
web2py.gluon.html.OBJECT.tag
 
1213
web2py.gluon.html.OL.tag
 
1214
web2py.gluon.html.OPTGROUP.tag
 
1215
web2py.gluon.html.OPTION.tag
 
1216
web2py.gluon.html.P.tag
 
1217
web2py.gluon.html.PRE.tag
 
1218
web2py.gluon.html.SCRIPT.tag
 
1219
web2py.gluon.html.SELECT.tag
 
1220
web2py.gluon.html.SPAN.tag
 
1221
web2py.gluon.html.STYLE.tag
 
1222
web2py.gluon.html.TABLE.tag
 
1223
web2py.gluon.html.TBODY.tag
 
1224
web2py.gluon.html.TD.tag
 
1225
web2py.gluon.html.TEXTAREA.tag
 
1226
web2py.gluon.html.TFOOT.tag
 
1227
web2py.gluon.html.TH.tag
 
1228
web2py.gluon.html.THEAD.tag
 
1229
web2py.gluon.html.TITLE.tag
 
1230
web2py.gluon.html.TR.tag
 
1231
web2py.gluon.html.TT.tag
 
1232
web2py.gluon.html.UL.tag
 
1233
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-38', 'tag', 'link-10');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;%s /&gt;"</tt> <tt class="py-op">%</tt> <tt id="link-39" class="py-name"><a title="web2py.gluon.html.A.tag
 
1234
web2py.gluon.html.B.tag
 
1235
web2py.gluon.html.BEAUTIFY.tag
 
1236
web2py.gluon.html.BODY.tag
 
1237
web2py.gluon.html.BR.tag
 
1238
web2py.gluon.html.BUTTON.tag
 
1239
web2py.gluon.html.CAT.tag
 
1240
web2py.gluon.html.CENTER.tag
 
1241
web2py.gluon.html.COL.tag
 
1242
web2py.gluon.html.COLGROUP.tag
 
1243
web2py.gluon.html.DIV.tag
 
1244
web2py.gluon.html.EM.tag
 
1245
web2py.gluon.html.EMBED.tag
 
1246
web2py.gluon.html.FIELDSET.tag
 
1247
web2py.gluon.html.FORM.tag
 
1248
web2py.gluon.html.H1.tag
 
1249
web2py.gluon.html.H2.tag
 
1250
web2py.gluon.html.H3.tag
 
1251
web2py.gluon.html.H4.tag
 
1252
web2py.gluon.html.H5.tag
 
1253
web2py.gluon.html.H6.tag
 
1254
web2py.gluon.html.HEAD.tag
 
1255
web2py.gluon.html.HR.tag
 
1256
web2py.gluon.html.HTML.tag
 
1257
web2py.gluon.html.I.tag
 
1258
web2py.gluon.html.IFRAME.tag
 
1259
web2py.gluon.html.IMG.tag
 
1260
web2py.gluon.html.INPUT.tag
 
1261
web2py.gluon.html.LABEL.tag
 
1262
web2py.gluon.html.LEGEND.tag
 
1263
web2py.gluon.html.LI.tag
 
1264
web2py.gluon.html.LINK.tag
 
1265
web2py.gluon.html.MENU.tag
 
1266
web2py.gluon.html.META.tag
 
1267
web2py.gluon.html.OBJECT.tag
 
1268
web2py.gluon.html.OL.tag
 
1269
web2py.gluon.html.OPTGROUP.tag
 
1270
web2py.gluon.html.OPTION.tag
 
1271
web2py.gluon.html.P.tag
 
1272
web2py.gluon.html.PRE.tag
 
1273
web2py.gluon.html.SCRIPT.tag
 
1274
web2py.gluon.html.SELECT.tag
 
1275
web2py.gluon.html.SPAN.tag
 
1276
web2py.gluon.html.STYLE.tag
 
1277
web2py.gluon.html.TABLE.tag
 
1278
web2py.gluon.html.TBODY.tag
 
1279
web2py.gluon.html.TD.tag
 
1280
web2py.gluon.html.TEXTAREA.tag
 
1281
web2py.gluon.html.TFOOT.tag
 
1282
web2py.gluon.html.TH.tag
 
1283
web2py.gluon.html.THEAD.tag
 
1284
web2py.gluon.html.TITLE.tag
 
1285
web2py.gluon.html.TR.tag
 
1286
web2py.gluon.html.TT.tag
 
1287
web2py.gluon.html.UL.tag
 
1288
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-39', 'tag', 'link-10');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
1289
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-40" class="py-name"><a title="web2py.gluon.dal.DatabaseStoredFile.escape" class="py-name" href="#" onclick="return doclink('link-40', 'escape', 'link-0');">escape</a></tt><tt class="py-op">:</tt> </tt>
1277
1290
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">strip_disallowed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1278
1291
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
1279
1292
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">rawstring</tt><tt class="py-op">)</tt> </tt>
1288
1301
<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1289
1302
<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"> </tt>
1290
1303
<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-name">tg</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
1291
 
<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-38" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-38', 'x', 'link-13');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1292
 
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">tg</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-op">+</tt> <tt id="link-39" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-39', 'x', 'link-13');">x</a></tt> </tt>
1293
 
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-40" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-40', 'x', 'link-13');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">:</tt> </tt>
1294
 
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">y</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">[</tt><tt id="link-41" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-41', 'x', 'link-13');">x</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
1304
<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-41" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-41', 'x', 'link-15');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1305
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">tg</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-op">+</tt> <tt id="link-42" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-42', 'x', 'link-15');">x</a></tt> </tt>
 
1306
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-43" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-43', 'x', 'link-15');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">:</tt> </tt>
 
1307
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">y</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">[</tt><tt id="link-44" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-44', 'x', 'link-15');">x</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
1295
1308
<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                    <tt class="py-name">tg</tt> <tt class="py-op">+=</tt> <tt class="py-string">' %s=""'</tt> <tt class="py-op">%</tt> <tt class="py-name">y</tt> </tt>
1296
1309
<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">            <tt class="py-name">tg</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt; '</tt> </tt>
1297
 
<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-42" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-42', 'xssescape', 'link-3');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">tg</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method web2py.gluon.sanitizer.XssCleaner.strip()=web2py.gluon.sanitizer.XssCleaner-class.html#strip"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-43', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
1310
<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-45" class="py-name"><a title="web2py.gluon.sanitizer.xssescape" class="py-name" href="#" onclick="return doclink('link-45', 'xssescape', 'link-5');">xssescape</a></tt><tt class="py-op">(</tt><tt class="py-name">tg</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method web2py.gluon.sanitizer.XssCleaner.strip()=web2py.gluon.sanitizer.XssCleaner-class.html#strip"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-46', 'strip', 'link-46');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
1298
1311
</div></div><a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
1299
1312
<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
1300
1313
<a name="sanitize"></a><div id="sanitize-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="sanitize-toggle" onclick="return toggle('sanitize');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.sanitizer-module.html#sanitize">sanitize</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">permitted_tags</tt><tt class="py-op">=</tt><tt class="py-op">[</tt> </tt>
1320
1333
<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-string">'blockquote'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
1321
1334
<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt class="py-string">'td'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'colspan'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
1322
1335
<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
1323
 
<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">             <tt class="py-name">escape</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1336
<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">             <tt id="link-47" class="py-name"><a title="web2py.gluon.dal.DatabaseStoredFile.escape" class="py-name" href="#" onclick="return doclink('link-47', 'escape', 'link-0');">escape</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1324
1337
</div><div id="sanitize-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="sanitize-expanded"><a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
1325
 
<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-44" class="py-name" targets="Class web2py.gluon.sanitizer.XssCleaner=web2py.gluon.sanitizer.XssCleaner-class.html"><a title="web2py.gluon.sanitizer.XssCleaner" class="py-name" href="#" onclick="return doclink('link-44', 'XssCleaner', 'link-44');">XssCleaner</a></tt><tt class="py-op">(</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">=</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">,</tt> </tt>
1326
 
<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                      <tt class="py-name">allowed_attributes</tt><tt class="py-op">=</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-45', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">escape</tt><tt class="py-op">)</tt> </tt>
 
1338
<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-48" class="py-name" targets="Class web2py.gluon.sanitizer.XssCleaner=web2py.gluon.sanitizer.XssCleaner-class.html"><a title="web2py.gluon.sanitizer.XssCleaner" class="py-name" href="#" onclick="return doclink('link-48', 'XssCleaner', 'link-48');">XssCleaner</a></tt><tt class="py-op">(</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">=</tt><tt class="py-name">permitted_tags</tt><tt class="py-op">,</tt> </tt>
 
1339
<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                      <tt class="py-name">allowed_attributes</tt><tt class="py-op">=</tt><tt class="py-name">allowed_attributes</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-49', 'strip', 'link-46');">strip</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="web2py.gluon.dal.DatabaseStoredFile.escape" class="py-name" href="#" onclick="return doclink('link-50', 'escape', 'link-0');">escape</a></tt><tt class="py-op">)</tt> </tt>
1327
1340
</div><a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt><script type="text/javascript">
1328
1341
<!--
1329
1342
expandto(location.href);
1362
1375
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
1363
1376
  <tr>
1364
1377
    <td align="left" class="footer">
1365
 
    Generated by Epydoc 3.0beta1 on Thu Aug  4 00:47:04 2011
 
1378
    Generated by Epydoc 3.0beta1 on Mon Sep 26 06:55:27 2011
1366
1379
    </td>
1367
1380
    <td align="right" class="footer">
1368
1381
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>