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

« back to all changes in this revision

Viewing changes to applications/examples/static/epydoc/web2py.gluon.html-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:
119
119
<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"> </tt>
120
120
<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable web2py.gluon.html.regex_crlf=web2py.gluon.html-module.html#regex_crlf"><a title="web2py.gluon.html.regex_crlf" class="py-name" href="#" onclick="return doclink('link-12', 'regex_crlf', 'link-12');">regex_crlf</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'\r|\n'</tt><tt class="py-op">)</tt> </tt>
121
121
<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"> </tt>
122
 
<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt id="link-13" class="py-name" targets="Function web2py.gluon.html.join()=web2py.gluon.html-module.html#join"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-13', 'join', 'link-13');">join</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-14', 'join', 'link-13');">join</a></tt> </tt>
 
122
<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt id="link-13" class="py-name" targets="Function web2py.gluon.html.join()=web2py.gluon.html-module.html#join,Method web2py.gluon.rocket.Listener.join()=web2py.gluon.rocket.Listener-class.html#join"><a title="web2py.gluon.html.join
 
123
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-13', 'join', 'link-13');">join</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="web2py.gluon.html.join
 
124
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-14', 'join', 'link-13');">join</a></tt> </tt>
123
125
<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"> </tt>
124
126
<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
125
127
<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line">    <tt class="py-string">'A'</tt><tt class="py-op">,</tt> </tt>
131
133
<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line">    <tt class="py-string">'CENTER'</tt><tt class="py-op">,</tt> </tt>
132
134
<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line">    <tt class="py-string">'CAT'</tt><tt class="py-op">,</tt> </tt>
133
135
<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line">    <tt class="py-string">'CODE'</tt><tt class="py-op">,</tt> </tt>
134
 
<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line">    <tt class="py-string">'DIV'</tt><tt class="py-op">,</tt> </tt>
135
 
<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line">    <tt class="py-string">'EM'</tt><tt class="py-op">,</tt> </tt>
136
 
<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line">    <tt class="py-string">'EMBED'</tt><tt class="py-op">,</tt> </tt>
137
 
<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line">    <tt class="py-string">'FIELDSET'</tt><tt class="py-op">,</tt> </tt>
138
 
<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line">    <tt class="py-string">'FORM'</tt><tt class="py-op">,</tt> </tt>
139
 
<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line">    <tt class="py-string">'H1'</tt><tt class="py-op">,</tt> </tt>
140
 
<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line">    <tt class="py-string">'H2'</tt><tt class="py-op">,</tt> </tt>
141
 
<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">    <tt class="py-string">'H3'</tt><tt class="py-op">,</tt> </tt>
142
 
<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">    <tt class="py-string">'H4'</tt><tt class="py-op">,</tt> </tt>
143
 
<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line">    <tt class="py-string">'H5'</tt><tt class="py-op">,</tt> </tt>
144
 
<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line">    <tt class="py-string">'H6'</tt><tt class="py-op">,</tt> </tt>
145
 
<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">    <tt class="py-string">'HEAD'</tt><tt class="py-op">,</tt> </tt>
146
 
<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">    <tt class="py-string">'HR'</tt><tt class="py-op">,</tt> </tt>
147
 
<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">    <tt class="py-string">'HTML'</tt><tt class="py-op">,</tt> </tt>
148
 
<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">    <tt class="py-string">'I'</tt><tt class="py-op">,</tt> </tt>
149
 
<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">    <tt class="py-string">'IFRAME'</tt><tt class="py-op">,</tt> </tt>
150
 
<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">    <tt class="py-string">'IMG'</tt><tt class="py-op">,</tt> </tt>
151
 
<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">    <tt class="py-string">'INPUT'</tt><tt class="py-op">,</tt> </tt>
152
 
<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line">    <tt class="py-string">'LABEL'</tt><tt class="py-op">,</tt> </tt>
153
 
<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">    <tt class="py-string">'LEGEND'</tt><tt class="py-op">,</tt> </tt>
154
 
<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">    <tt class="py-string">'LI'</tt><tt class="py-op">,</tt> </tt>
155
 
<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line">    <tt class="py-string">'LINK'</tt><tt class="py-op">,</tt> </tt>
156
 
<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">    <tt class="py-string">'OL'</tt><tt class="py-op">,</tt> </tt>
157
 
<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">    <tt class="py-string">'UL'</tt><tt class="py-op">,</tt> </tt>
158
 
<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">    <tt class="py-string">'MARKMIN'</tt><tt class="py-op">,</tt> </tt>
159
 
<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line">    <tt class="py-string">'MENU'</tt><tt class="py-op">,</tt> </tt>
160
 
<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">    <tt class="py-string">'META'</tt><tt class="py-op">,</tt> </tt>
161
 
<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">    <tt class="py-string">'OBJECT'</tt><tt class="py-op">,</tt> </tt>
162
 
<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">    <tt class="py-string">'ON'</tt><tt class="py-op">,</tt> </tt>
163
 
<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">    <tt class="py-string">'OPTION'</tt><tt class="py-op">,</tt> </tt>
164
 
<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">    <tt class="py-string">'P'</tt><tt class="py-op">,</tt> </tt>
165
 
<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">    <tt class="py-string">'PRE'</tt><tt class="py-op">,</tt> </tt>
166
 
<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">    <tt class="py-string">'SCRIPT'</tt><tt class="py-op">,</tt> </tt>
167
 
<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">    <tt class="py-string">'OPTGROUP'</tt><tt class="py-op">,</tt> </tt>
168
 
<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">    <tt class="py-string">'SELECT'</tt><tt class="py-op">,</tt> </tt>
169
 
<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line">    <tt class="py-string">'SPAN'</tt><tt class="py-op">,</tt> </tt>
170
 
<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">    <tt class="py-string">'STYLE'</tt><tt class="py-op">,</tt> </tt>
171
 
<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">    <tt class="py-string">'TABLE'</tt><tt class="py-op">,</tt> </tt>
172
 
<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">    <tt class="py-string">'TAG'</tt><tt class="py-op">,</tt> </tt>
173
 
<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">    <tt class="py-string">'TD'</tt><tt class="py-op">,</tt> </tt>
174
 
<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">    <tt class="py-string">'TEXTAREA'</tt><tt class="py-op">,</tt> </tt>
175
 
<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">    <tt class="py-string">'TH'</tt><tt class="py-op">,</tt> </tt>
176
 
<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">    <tt class="py-string">'THEAD'</tt><tt class="py-op">,</tt> </tt>
177
 
<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line">    <tt class="py-string">'TBODY'</tt><tt class="py-op">,</tt> </tt>
178
 
<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line">    <tt class="py-string">'TFOOT'</tt><tt class="py-op">,</tt> </tt>
179
 
<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">    <tt class="py-string">'TITLE'</tt><tt class="py-op">,</tt> </tt>
180
 
<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">    <tt class="py-string">'TR'</tt><tt class="py-op">,</tt> </tt>
181
 
<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">    <tt class="py-string">'TT'</tt><tt class="py-op">,</tt> </tt>
182
 
<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">    <tt class="py-string">'URL'</tt><tt class="py-op">,</tt> </tt>
183
 
<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">    <tt class="py-string">'XHTML'</tt><tt class="py-op">,</tt> </tt>
184
 
<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">    <tt class="py-string">'XML'</tt><tt class="py-op">,</tt> </tt>
185
 
<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line">    <tt class="py-string">'xmlescape'</tt><tt class="py-op">,</tt> </tt>
186
 
<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">    <tt class="py-string">'embed64'</tt><tt class="py-op">,</tt> </tt>
187
 
<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
188
 
<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line"> </tt>
189
 
<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line"> </tt>
190
 
<a name="xmlescape"></a><div id="xmlescape-def"><a name="L105"></a><tt class="py-lineno"> 105</tt> <a class="py-toggle" href="#" id="xmlescape-toggle" onclick="return toggle('xmlescape');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#xmlescape">xmlescape</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">quote</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
191
 
</div><div id="xmlescape-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="xmlescape-expanded"><a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
192
 
<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line"><tt class="py-docstring">    returns an escaped string of the provided data</tt> </tt>
193
 
<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
194
 
<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"><tt class="py-docstring">    :param data: the data to be escaped</tt> </tt>
195
 
<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"><tt class="py-docstring">    :param quote: optional (default False)</tt> </tt>
196
 
<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
197
 
<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"> </tt>
198
 
<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line">    <tt class="py-comment"># first try the xml function</tt> </tt>
199
 
<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-15" 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
 
136
<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line">    <tt class="py-string">'COL'</tt><tt class="py-op">,</tt> </tt>
 
137
<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line">    <tt class="py-string">'COLGROUP'</tt><tt class="py-op">,</tt> </tt>
 
138
<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line">    <tt class="py-string">'DIV'</tt><tt class="py-op">,</tt> </tt>
 
139
<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line">    <tt class="py-string">'EM'</tt><tt class="py-op">,</tt> </tt>
 
140
<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line">    <tt class="py-string">'EMBED'</tt><tt class="py-op">,</tt> </tt>
 
141
<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line">    <tt class="py-string">'FIELDSET'</tt><tt class="py-op">,</tt> </tt>
 
142
<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line">    <tt class="py-string">'FORM'</tt><tt class="py-op">,</tt> </tt>
 
143
<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">    <tt class="py-string">'H1'</tt><tt class="py-op">,</tt> </tt>
 
144
<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">    <tt class="py-string">'H2'</tt><tt class="py-op">,</tt> </tt>
 
145
<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line">    <tt class="py-string">'H3'</tt><tt class="py-op">,</tt> </tt>
 
146
<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line">    <tt class="py-string">'H4'</tt><tt class="py-op">,</tt> </tt>
 
147
<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">    <tt class="py-string">'H5'</tt><tt class="py-op">,</tt> </tt>
 
148
<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">    <tt class="py-string">'H6'</tt><tt class="py-op">,</tt> </tt>
 
149
<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">    <tt class="py-string">'HEAD'</tt><tt class="py-op">,</tt> </tt>
 
150
<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">    <tt class="py-string">'HR'</tt><tt class="py-op">,</tt> </tt>
 
151
<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">    <tt class="py-string">'HTML'</tt><tt class="py-op">,</tt> </tt>
 
152
<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">    <tt class="py-string">'I'</tt><tt class="py-op">,</tt> </tt>
 
153
<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">    <tt class="py-string">'IFRAME'</tt><tt class="py-op">,</tt> </tt>
 
154
<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line">    <tt class="py-string">'IMG'</tt><tt class="py-op">,</tt> </tt>
 
155
<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">    <tt class="py-string">'INPUT'</tt><tt class="py-op">,</tt> </tt>
 
156
<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">    <tt class="py-string">'LABEL'</tt><tt class="py-op">,</tt> </tt>
 
157
<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line">    <tt class="py-string">'LEGEND'</tt><tt class="py-op">,</tt> </tt>
 
158
<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">    <tt class="py-string">'LI'</tt><tt class="py-op">,</tt> </tt>
 
159
<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">    <tt class="py-string">'LINK'</tt><tt class="py-op">,</tt> </tt>
 
160
<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">    <tt class="py-string">'OL'</tt><tt class="py-op">,</tt> </tt>
 
161
<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line">    <tt class="py-string">'UL'</tt><tt class="py-op">,</tt> </tt>
 
162
<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">    <tt class="py-string">'MARKMIN'</tt><tt class="py-op">,</tt> </tt>
 
163
<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">    <tt class="py-string">'MENU'</tt><tt class="py-op">,</tt> </tt>
 
164
<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">    <tt class="py-string">'META'</tt><tt class="py-op">,</tt> </tt>
 
165
<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">    <tt class="py-string">'OBJECT'</tt><tt class="py-op">,</tt> </tt>
 
166
<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">    <tt class="py-string">'ON'</tt><tt class="py-op">,</tt> </tt>
 
167
<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">    <tt class="py-string">'OPTION'</tt><tt class="py-op">,</tt> </tt>
 
168
<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">    <tt class="py-string">'P'</tt><tt class="py-op">,</tt> </tt>
 
169
<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">    <tt class="py-string">'PRE'</tt><tt class="py-op">,</tt> </tt>
 
170
<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">    <tt class="py-string">'SCRIPT'</tt><tt class="py-op">,</tt> </tt>
 
171
<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line">    <tt class="py-string">'OPTGROUP'</tt><tt class="py-op">,</tt> </tt>
 
172
<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">    <tt class="py-string">'SELECT'</tt><tt class="py-op">,</tt> </tt>
 
173
<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">    <tt class="py-string">'SPAN'</tt><tt class="py-op">,</tt> </tt>
 
174
<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">    <tt class="py-string">'STYLE'</tt><tt class="py-op">,</tt> </tt>
 
175
<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">    <tt class="py-string">'TABLE'</tt><tt class="py-op">,</tt> </tt>
 
176
<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">    <tt class="py-string">'TAG'</tt><tt class="py-op">,</tt> </tt>
 
177
<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">    <tt class="py-string">'TD'</tt><tt class="py-op">,</tt> </tt>
 
178
<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">    <tt class="py-string">'TEXTAREA'</tt><tt class="py-op">,</tt> </tt>
 
179
<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line">    <tt class="py-string">'TH'</tt><tt class="py-op">,</tt> </tt>
 
180
<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line">    <tt class="py-string">'THEAD'</tt><tt class="py-op">,</tt> </tt>
 
181
<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">    <tt class="py-string">'TBODY'</tt><tt class="py-op">,</tt> </tt>
 
182
<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">    <tt class="py-string">'TFOOT'</tt><tt class="py-op">,</tt> </tt>
 
183
<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">    <tt class="py-string">'TITLE'</tt><tt class="py-op">,</tt> </tt>
 
184
<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">    <tt class="py-string">'TR'</tt><tt class="py-op">,</tt> </tt>
 
185
<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">    <tt class="py-string">'TT'</tt><tt class="py-op">,</tt> </tt>
 
186
<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">    <tt class="py-string">'URL'</tt><tt class="py-op">,</tt> </tt>
 
187
<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line">    <tt class="py-string">'XHTML'</tt><tt class="py-op">,</tt> </tt>
 
188
<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">    <tt class="py-string">'XML'</tt><tt class="py-op">,</tt> </tt>
 
189
<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">    <tt class="py-string">'xmlescape'</tt><tt class="py-op">,</tt> </tt>
 
190
<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line">    <tt class="py-string">'embed64'</tt><tt class="py-op">,</tt> </tt>
 
191
<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
 
192
<a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line"> </tt>
 
193
<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line"> </tt>
 
194
<a name="xmlescape"></a><div id="xmlescape-def"><a name="L107"></a><tt class="py-lineno"> 107</tt> <a class="py-toggle" href="#" id="xmlescape-toggle" onclick="return toggle('xmlescape');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#xmlescape">xmlescape</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">quote</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
195
</div><div id="xmlescape-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="xmlescape-expanded"><a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
196
<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"><tt class="py-docstring">    returns an escaped string of the provided data</tt> </tt>
 
197
<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
198
<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"><tt class="py-docstring">    :param data: the data to be escaped</tt> </tt>
 
199
<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"><tt class="py-docstring">    :param quote: optional (default False)</tt> </tt>
 
200
<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
201
<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line"> </tt>
 
202
<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">    <tt class="py-comment"># first try the xml function</tt> </tt>
 
203
<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-15" 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
200
204
web2py.gluon.html.A.xml
201
205
web2py.gluon.html.CODE.xml
202
206
web2py.gluon.html.DIV.xml
215
219
web2py.gluon.serializers.xml
216
220
web2py.gluon.tools.Recaptcha.xml
217
221
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-15', 'xml', 'link-15');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
218
 
<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
222
<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="web2py.gluon.dal.Rows.xml
219
223
web2py.gluon.html.A.xml
220
224
web2py.gluon.html.CODE.xml
221
225
web2py.gluon.html.DIV.xml
234
238
web2py.gluon.serializers.xml
235
239
web2py.gluon.tools.Recaptcha.xml
236
240
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-16', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
237
 
<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"> </tt>
238
 
<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line">    <tt class="py-comment"># otherwise, make it a string</tt> </tt>
239
 
<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <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">data</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
240
 
<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
241
 
<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
242
 
<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method web2py.gluon.languages.lazyT.encode()=web2py.gluon.languages.lazyT-class.html#encode"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-17', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt> </tt>
243
 
<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line"> </tt>
244
 
<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">    <tt class="py-comment"># ... and do the escaping</tt> </tt>
245
 
<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">cgi</tt><tt class="py-op">.</tt><tt class="py-name">escape</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">quote</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;#x27;"</tt><tt class="py-op">)</tt> </tt>
246
 
<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
247
 
</div><a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line"> </tt>
248
 
<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line"> </tt>
249
 
<a name="URL"></a><div id="URL-def"><a name="L128"></a><tt class="py-lineno"> 128</tt> <a class="py-toggle" href="#" id="URL-toggle" onclick="return toggle('URL');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#URL">URL</a><tt class="py-op">(</tt> </tt>
250
 
<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line">    <tt class="py-param">a</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
251
 
<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">    <tt class="py-param">c</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
252
 
<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">    <tt class="py-param">f</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
253
 
<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">    <tt class="py-param">r</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
254
 
<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">    <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
255
 
<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">    <tt class="py-param">vars</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
256
 
<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">    <tt class="py-param">anchor</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
257
 
<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line">    <tt class="py-param">extension</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
258
 
<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">    <tt class="py-param">env</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
259
 
<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">    <tt class="py-param">hmac_key</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
260
 
<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">    <tt class="py-param">hash_vars</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
261
 
<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">    <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
262
 
<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">    <tt class="py-param">user_signature</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
263
 
<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">    <tt class="py-param">scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
264
 
<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">    <tt class="py-param">host</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
265
 
<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">    <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
266
 
<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">    <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
267
 
</div><div id="URL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="URL-expanded"><a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
268
 
<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line"><tt class="py-docstring">    generate a URL</tt> </tt>
269
 
<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
270
 
<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
271
 
<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
272
 
<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
273
 
<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':1, 'q':2}, anchor='1'))</tt> </tt>
274
 
<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;q=2#1'</tt> </tt>
275
 
<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
276
 
<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
277
 
<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(1,3), 'q':2}, anchor='1'))</tt> </tt>
278
 
<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;p=3&amp;q=2#1'</tt> </tt>
279
 
<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
280
 
<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
281
 
<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(3,1), 'q':2}, anchor='1'))</tt> </tt>
282
 
<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=3&amp;p=1&amp;q=2#1'</tt> </tt>
283
 
<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
284
 
<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', anchor='1+2'))</tt> </tt>
285
 
<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f#1%2B2'</tt> </tt>
 
241
<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line"> </tt>
 
242
<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">    <tt class="py-comment"># otherwise, make it a string</tt> </tt>
 
243
<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <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">data</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
244
<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
245
<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
246
<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method web2py.gluon.languages.lazyT.encode()=web2py.gluon.languages.lazyT-class.html#encode"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-17', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt> </tt>
 
247
<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"> </tt>
 
248
<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">    <tt class="py-comment"># ... and do the escaping</tt> </tt>
 
249
<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">cgi</tt><tt class="py-op">.</tt><tt id="link-18" 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-18', 'escape', 'link-18');">escape</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">quote</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;#x27;"</tt><tt class="py-op">)</tt> </tt>
 
250
<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
 
251
</div><a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line"> </tt>
 
252
<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line"> </tt>
 
253
<a name="URL"></a><div id="URL-def"><a name="L130"></a><tt class="py-lineno"> 130</tt> <a class="py-toggle" href="#" id="URL-toggle" onclick="return toggle('URL');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#URL">URL</a><tt class="py-op">(</tt> </tt>
 
254
<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">    <tt class="py-param">a</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
255
<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">    <tt class="py-param">c</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
256
<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">    <tt class="py-param">f</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
257
<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">    <tt class="py-param">r</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
258
<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">    <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
259
<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line">    <tt class="py-param">vars</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
260
<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">    <tt class="py-param">anchor</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
 
261
<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">    <tt class="py-param">extension</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
262
<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">    <tt class="py-param">env</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
263
<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">    <tt class="py-param">hmac_key</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
264
<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">    <tt class="py-param">hash_vars</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
 
265
<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">    <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
266
<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">    <tt class="py-param">user_signature</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
267
<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">    <tt class="py-param">scheme</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
268
<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">    <tt class="py-param">host</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
269
<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">    <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
270
<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">    <tt class="py-param">encode_embedded_slash</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
 
271
<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">    <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
272
</div><div id="URL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="URL-expanded"><a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
273
<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line"><tt class="py-docstring">    generate a URL</tt> </tt>
 
274
<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
275
<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
276
<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
277
<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
 
278
<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':1, 'q':2}, anchor='1'))</tt> </tt>
 
279
<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;q=2#1'</tt> </tt>
 
280
<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
281
<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
 
282
<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(1,3), 'q':2}, anchor='1'))</tt> </tt>
 
283
<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;p=3&amp;q=2#1'</tt> </tt>
 
284
<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
285
<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
 
286
<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(3,1), 'q':2}, anchor='1'))</tt> </tt>
 
287
<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=3&amp;p=1&amp;q=2#1'</tt> </tt>
286
288
<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
287
 
<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
288
 
<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(1,3), 'q':2}, anchor='1', hmac_key='key'))</tt> </tt>
289
 
<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;p=3&amp;q=2&amp;_signature=5d06bb8a4a6093dd325da2ee591c35c61afbd3c6#1'</tt> </tt>
290
 
<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
291
 
<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line"><tt class="py-docstring">    generates a url '/a/c/f' corresponding to application a, controller c</tt> </tt>
292
 
<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"><tt class="py-docstring">    and function f. If r=request is passed, a, c, f are set, respectively,</tt> </tt>
293
 
<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line"><tt class="py-docstring">    to r.application, r.controller, r.function.</tt> </tt>
294
 
<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
295
 
<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line"><tt class="py-docstring">    The more typical usage is:</tt> </tt>
 
289
<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', anchor='1+2'))</tt> </tt>
 
290
<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f#1%2B2'</tt> </tt>
 
291
<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
292
<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['x', 'y', 'z'],</tt> </tt>
 
293
<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line"><tt class="py-docstring">        ...     vars={'p':(1,3), 'q':2}, anchor='1', hmac_key='key'))</tt> </tt>
 
294
<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/x/y/z?p=1&amp;p=3&amp;q=2&amp;_signature=a32530f0d0caa80964bb92aad2bedf8a4486a31f#1'</tt> </tt>
 
295
<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
296
<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['w/x', 'y/z']))</tt> </tt>
 
297
<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/w/x/y/z'</tt> </tt>
296
298
<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
297
 
<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line"><tt class="py-docstring">    URL(r=request, f='index') that generates a url for the index function</tt> </tt>
298
 
<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line"><tt class="py-docstring">    within the present application and controller.</tt> </tt>
 
299
<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; str(URL(a='a', c='c', f='f', args=['w/x', 'y/z'], encode_embedded_slash=True))</tt> </tt>
 
300
<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line"><tt class="py-docstring">        '/a/c/f/w%2Fx/y%2Fz'</tt> </tt>
299
301
<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
300
 
<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line"><tt class="py-docstring">    :param a: application (default to current if r is given)</tt> </tt>
301
 
<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line"><tt class="py-docstring">    :param c: controller (default to current if r is given)</tt> </tt>
302
 
<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"><tt class="py-docstring">    :param f: function (default to current if r is given)</tt> </tt>
303
 
<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"><tt class="py-docstring">    :param r: request (optional)</tt> </tt>
304
 
<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line"><tt class="py-docstring">    :param args: any arguments (optional)</tt> </tt>
305
 
<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"><tt class="py-docstring">    :param vars: any variables (optional)</tt> </tt>
306
 
<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"><tt class="py-docstring">    :param anchor: anchorname, without # (optional)</tt> </tt>
307
 
<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"><tt class="py-docstring">    :param hmac_key: key to use when generating hmac signature (optional)</tt> </tt>
308
 
<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"><tt class="py-docstring">    :param hash_vars: which of the vars to include in our hmac signature</tt> </tt>
309
 
<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"><tt class="py-docstring">        True (default) - hash all vars, False - hash none of the vars,</tt> </tt>
310
 
<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line"><tt class="py-docstring">        iterable - hash only the included vars ['key1','key2']</tt> </tt>
311
 
<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line"><tt class="py-docstring">    :param scheme: URI scheme (True, 'http' or 'https', etc); forces absolute URL (optional)</tt> </tt>
312
 
<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line"><tt class="py-docstring">    :param host: string to force absolute URL with host (True means http_host)</tt> </tt>
313
 
<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"><tt class="py-docstring">    :param port: optional port number (forces absolute URL)</tt> </tt>
314
 
<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
315
 
<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"><tt class="py-docstring">    :raises SyntaxError: when no application, controller or function is</tt> </tt>
316
 
<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"><tt class="py-docstring">        available</tt> </tt>
317
 
<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line"><tt class="py-docstring">    :raises SyntaxError: when a CRLF is found in the generated url</tt> </tt>
318
 
<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
319
 
<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line"> </tt>
320
 
<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
321
 
<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">    <tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt class="py-name">vars</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
322
 
<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">    <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
323
 
<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line">    <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
324
 
<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line">    <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
325
 
<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line"> </tt>
326
 
<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">r</tt><tt class="py-op">:</tt> </tt>
327
 
<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">a</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">c</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
328
 
<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">a</tt> <tt class="py-keyword">and</tt> <tt class="py-name">c</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
329
 
<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-18" class="py-name" targets="Module web2py.gluon.globals=web2py.gluon.globals-module.html"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-18', 'globals', 'link-18');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Variable web2py.gluon.current=web2py.gluon-module.html#current,Variable web2py.gluon.globals.current=web2py.gluon.globals-module.html#current,Variable web2py.gluon.tools.current=web2py.gluon.tools-module.html#current"><a title="web2py.gluon.current
330
 
web2py.gluon.globals.current
331
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-19', 'current', 'link-19');">current</a></tt> </tt>
332
 
<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="web2py.gluon.current
333
 
web2py.gluon.globals.current
334
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-20', 'current', 'link-19');">current</a></tt><tt class="py-op">,</tt><tt class="py-string">'request'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
335
 
<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="web2py.gluon.current
336
 
web2py.gluon.globals.current
337
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-21', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">request</tt> </tt>
338
 
<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">r</tt><tt class="py-op">:</tt> </tt>
339
 
<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">        <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">application</tt> </tt>
340
 
<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">controller</tt> </tt>
341
 
<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line">        <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">function</tt> </tt>
342
 
<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt id="link-22" class="py-name" targets="Function web2py.gluon.shell.env()=web2py.gluon.shell-module.html#env"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-22', 'env', 'link-22');">env</a></tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-23', 'env', 'link-22');">env</a></tt> </tt>
343
 
<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">extension</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
344
 
<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">            <tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> </tt>
345
 
<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">a</tt><tt class="py-op">:</tt> </tt>
346
 
<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">        <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
347
 
<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
348
 
<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">        <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
349
 
<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
350
 
<a name="L223"></a><tt class="py-lineno"> 223</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">f</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
351
 
<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">            <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
352
 
<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
353
 
<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">            <tt class="py-name">function</tt><tt class="py-op">,</tt> <tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
354
 
<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
355
 
<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">            <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt> </tt>
356
 
<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line"> </tt>
357
 
<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">    <tt class="py-name">function2</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">function</tt><tt class="py-op">,</tt><tt class="py-name">extension</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
358
 
<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"> </tt>
359
 
<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">application</tt> <tt class="py-keyword">and</tt> <tt class="py-name">controller</tt> <tt class="py-keyword">and</tt> <tt class="py-name">function</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
360
 
<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'not enough information to build the url'</tt> </tt>
361
 
<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"> </tt>
362
 
<a name="L235"></a><tt class="py-lineno"> 235</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">args</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
363
 
<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">args</tt><tt class="py-op">]</tt> </tt>
364
 
<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">    <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-24', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-25" 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-25', 'x', 'link-25');">x</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-26" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-26', 'x', 'link-25');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
365
 
<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method web2py.gluon.dal.Expression.endswith()=web2py.gluon.dal.Expression-class.html#endswith"><a title="web2py.gluon.dal.Expression.endswith" class="py-name" href="#" onclick="return doclink('link-27', 'endswith', 'link-27');">endswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
366
 
<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'/'</tt>    <tt class="py-comment"># add trailing slash to make last trailing empty arg explicit</tt> </tt>
 
302
<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line"><tt class="py-docstring">    generates a url '/a/c/f' corresponding to application a, controller c</tt> </tt>
 
303
<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line"><tt class="py-docstring">    and function f. If r=request is passed, a, c, f are set, respectively,</tt> </tt>
 
304
<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"><tt class="py-docstring">    to r.application, r.controller, r.function.</tt> </tt>
 
305
<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
306
<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line"><tt class="py-docstring">    The more typical usage is:</tt> </tt>
 
307
<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
308
<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"><tt class="py-docstring">    URL(r=request, f='index') that generates a url for the index function</tt> </tt>
 
309
<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"><tt class="py-docstring">    within the present application and controller.</tt> </tt>
 
310
<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
311
<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"><tt class="py-docstring">    :param a: application (default to current if r is given)</tt> </tt>
 
312
<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line"><tt class="py-docstring">    :param c: controller (default to current if r is given)</tt> </tt>
 
313
<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line"><tt class="py-docstring">    :param f: function (default to current if r is given)</tt> </tt>
 
314
<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line"><tt class="py-docstring">    :param r: request (optional)</tt> </tt>
 
315
<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"><tt class="py-docstring">    :param args: any arguments (optional)</tt> </tt>
 
316
<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"><tt class="py-docstring">    :param vars: any variables (optional)</tt> </tt>
 
317
<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"><tt class="py-docstring">    :param anchor: anchorname, without # (optional)</tt> </tt>
 
318
<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"><tt class="py-docstring">    :param hmac_key: key to use when generating hmac signature (optional)</tt> </tt>
 
319
<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line"><tt class="py-docstring">    :param hash_vars: which of the vars to include in our hmac signature</tt> </tt>
 
320
<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"><tt class="py-docstring">        True (default) - hash all vars, False - hash none of the vars,</tt> </tt>
 
321
<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line"><tt class="py-docstring">        iterable - hash only the included vars ['key1','key2']</tt> </tt>
 
322
<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line"><tt class="py-docstring">    :param scheme: URI scheme (True, 'http' or 'https', etc); forces absolute URL (optional)</tt> </tt>
 
323
<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line"><tt class="py-docstring">    :param host: string to force absolute URL with host (True means http_host)</tt> </tt>
 
324
<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line"><tt class="py-docstring">    :param port: optional port number (forces absolute URL)</tt> </tt>
 
325
<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
326
<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"><tt class="py-docstring">    :raises SyntaxError: when no application, controller or function is</tt> </tt>
 
327
<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line"><tt class="py-docstring">        available</tt> </tt>
 
328
<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"><tt class="py-docstring">    :raises SyntaxError: when a CRLF is found in the generated url</tt> </tt>
 
329
<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
330
<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line"> </tt>
 
331
<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
332
<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">    <tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt class="py-name">vars</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
333
<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">    <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
334
<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line">    <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
335
<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">    <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
336
<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line"> </tt>
 
337
<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">r</tt><tt class="py-op">:</tt> </tt>
 
338
<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">a</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">c</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
 
339
<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">a</tt> <tt class="py-keyword">and</tt> <tt class="py-name">c</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
 
340
<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-19" class="py-name" targets="Module web2py.gluon.globals=web2py.gluon.globals-module.html"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-19', 'globals', 'link-19');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-20" class="py-name" targets="Variable web2py.gluon.current=web2py.gluon-module.html#current,Variable web2py.gluon.globals.current=web2py.gluon.globals-module.html#current,Variable web2py.gluon.tools.current=web2py.gluon.tools-module.html#current"><a title="web2py.gluon.current
 
341
web2py.gluon.globals.current
 
342
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-20', 'current', 'link-20');">current</a></tt> </tt>
 
343
<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="web2py.gluon.current
 
344
web2py.gluon.globals.current
 
345
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-21', 'current', 'link-20');">current</a></tt><tt class="py-op">,</tt><tt class="py-string">'request'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
346
<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">            <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="web2py.gluon.current
 
347
web2py.gluon.globals.current
 
348
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-22', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">request</tt> </tt>
 
349
<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">r</tt><tt class="py-op">:</tt> </tt>
 
350
<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">        <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">application</tt> </tt>
 
351
<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">        <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">controller</tt> </tt>
 
352
<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">        <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">function</tt> </tt>
 
353
<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">        <tt id="link-23" class="py-name" targets="Function web2py.gluon.shell.env()=web2py.gluon.shell-module.html#env"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-23', 'env', 'link-23');">env</a></tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-24', 'env', 'link-23');">env</a></tt> </tt>
 
354
<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">extension</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-op">!=</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
 
355
<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">            <tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> </tt>
 
356
<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">a</tt><tt class="py-op">:</tt> </tt>
 
357
<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt class="py-name">application</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
 
358
<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
 
359
<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt class="py-name">controller</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
 
360
<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
 
361
<a name="L232"></a><tt class="py-lineno"> 232</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">f</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
362
<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">            <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
 
363
<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
 
364
<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">            <tt class="py-name">function</tt><tt class="py-op">,</tt> <tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
 
365
<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
366
<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">            <tt class="py-name">function</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt> </tt>
 
367
<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"> </tt>
 
368
<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">    <tt class="py-name">function2</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">function</tt><tt class="py-op">,</tt><tt class="py-name">extension</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
367
369
<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line"> </tt>
368
 
<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">vars</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method web2py.gluon.rocket.Headers.has_key()=web2py.gluon.rocket.Headers-class.html#has_key"><a title="web2py.gluon.rocket.Headers.has_key" class="py-name" href="#" onclick="return doclink('link-28', 'has_key', 'link-28');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt> </tt>
369
 
<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">    <tt class="py-name">list_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
370
 
<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">vals</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method web2py.gluon.rocket.Headers.items()=web2py.gluon.rocket.Headers-class.html#items"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-29', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
371
 
<a name="L244"></a><tt class="py-lineno"> 244</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">vals</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
372
 
<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">            <tt class="py-name">vals</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">vals</tt><tt class="py-op">]</tt> </tt>
373
 
<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">vals</tt><tt class="py-op">:</tt> </tt>
374
 
<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">            <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method web2py.gluon.html.DIV.append()=web2py.gluon.html.DIV-class.html#append,Method web2py.gluon.template.BlockNode.append()=web2py.gluon.template.BlockNode-class.html#append,Method web2py.gluon.template.Content.append()=web2py.gluon.template.Content-class.html#append"><a title="web2py.gluon.html.DIV.append
375
 
web2py.gluon.template.BlockNode.append
376
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-30', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
377
 
<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line"> </tt>
378
 
<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">user_signature</tt><tt class="py-op">:</tt> </tt>
379
 
<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-31" class="py-name"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-31', 'globals', 'link-18');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-32" class="py-name"><a title="web2py.gluon.current
380
 
web2py.gluon.globals.current
381
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-32', 'current', 'link-19');">current</a></tt> </tt>
382
 
<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-33" class="py-name"><a title="web2py.gluon.current
383
 
web2py.gluon.globals.current
384
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-33', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">:</tt> </tt>
385
 
<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">            <tt class="py-name">hmac_key</tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="web2py.gluon.current
386
 
web2py.gluon.globals.current
387
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-34', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">.</tt><tt class="py-name">hmac_key</tt> </tt>
388
 
<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line"> </tt>
389
 
<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">hmac_key</tt><tt class="py-op">:</tt> </tt>
390
 
<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">        <tt class="py-comment"># generate an hmac signature of the vars &amp; args so can later</tt> </tt>
391
 
<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># verify the user hasn't messed with anything</tt> </tt>
392
 
<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
393
 
<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line">        <tt class="py-name">h_args</tt> <tt class="py-op">=</tt> <tt class="py-string">'/%s/%s/%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function2</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
394
 
<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line"> </tt>
395
 
<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">        <tt class="py-comment"># how many of the vars should we include in our hash?</tt> </tt>
396
 
<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt>       <tt class="py-comment"># include them all</tt> </tt>
397
 
<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">list_vars</tt> </tt>
398
 
<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt>    <tt class="py-comment"># include none of them</tt> </tt>
399
 
<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
400
 
<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt>                       <tt class="py-comment"># include just those specified</tt> </tt>
401
 
<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">hash_vars</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
402
 
<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">                <tt class="py-name">hash_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
403
 
<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name" targets="Variable psycopg2.k=psycopg2-module.html#k"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-35', 'k', 'link-35');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-36', 'k', 'link-35');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_vars</tt> <tt class="py-keyword">if</tt> <tt id="link-37" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-37', 'k', 'link-35');">k</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
404
 
<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line"> </tt>
405
 
<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line">        <tt class="py-comment"># re-assembling the same way during hash authentication</tt> </tt>
406
 
<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt id="link-38" class="py-name" targets="Variable web2py.gluon.http.HTTP.message=web2py.gluon.http.HTTP-class.html#message"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-38', 'message', 'link-38');">message</a></tt> <tt class="py-op">=</tt> <tt class="py-name">h_args</tt> <tt class="py-op">+</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">h_vars</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
407
 
<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line"> </tt>
408
 
<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">        <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="web2py.gluon.utils.hmac_hash" class="py-name" href="#" onclick="return doclink('link-39', 'hmac_hash', 'link-11');">hmac_hash</a></tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-40', 'message', 'link-38');">message</a></tt><tt class="py-op">,</tt><tt class="py-name">hmac_key</tt><tt class="py-op">,</tt><tt class="py-name">salt</tt><tt class="py-op">=</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
409
 
<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">        <tt class="py-comment"># add the signature into vars</tt> </tt>
410
 
<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="web2py.gluon.html.DIV.append
411
 
web2py.gluon.template.BlockNode.append
412
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-41', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
370
<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">application</tt> <tt class="py-keyword">and</tt> <tt class="py-name">controller</tt> <tt class="py-keyword">and</tt> <tt class="py-name">function</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
371
<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'not enough information to build the url'</tt> </tt>
 
372
<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"> </tt>
 
373
<a name="L244"></a><tt class="py-lineno"> 244</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">args</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
374
<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">args</tt><tt class="py-op">]</tt> </tt>
 
375
<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line"> </tt>
 
376
<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt>
 
377
<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">encode_embedded_slash</tt><tt class="py-op">:</tt> </tt>
 
378
<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">            <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="web2py.gluon.html.join
 
379
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-25', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-26" 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-26', 'x', 'link-26');">x</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-27" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-27', 'x', 'link-26');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
380
<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
381
<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">            <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="web2py.gluon.html.join
 
382
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-28', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-29', 'x', 'link-26');">x</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-30" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-30', 'x', 'link-26');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
383
<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
384
<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
385
<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"> </tt>
 
386
<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method web2py.gluon.dal.Expression.endswith()=web2py.gluon.dal.Expression-class.html#endswith"><a title="web2py.gluon.dal.Expression.endswith" class="py-name" href="#" onclick="return doclink('link-31', 'endswith', 'link-31');">endswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
387
<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'/'</tt>    <tt class="py-comment"># add trailing slash to make last trailing empty arg explicit</tt> </tt>
 
388
<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line"> </tt>
 
389
<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt> </tt>
 
390
<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">    <tt class="py-name">list_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
391
<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">vals</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
392
<a name="L261"></a><tt class="py-lineno"> 261</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">vals</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
393
<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">            <tt class="py-name">vals</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">vals</tt><tt class="py-op">]</tt> </tt>
 
394
<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">vals</tt><tt class="py-op">:</tt> </tt>
 
395
<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">            <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method web2py.gluon.html.DIV.append()=web2py.gluon.html.DIV-class.html#append,Method web2py.gluon.template.BlockNode.append()=web2py.gluon.template.BlockNode-class.html#append,Method web2py.gluon.template.Content.append()=web2py.gluon.template.Content-class.html#append"><a title="web2py.gluon.html.DIV.append
 
396
web2py.gluon.template.BlockNode.append
 
397
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-32', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
398
<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"> </tt>
 
399
<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">user_signature</tt><tt class="py-op">:</tt> </tt>
 
400
<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-33" class="py-name"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-33', 'globals', 'link-19');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-34" class="py-name"><a title="web2py.gluon.current
 
401
web2py.gluon.globals.current
 
402
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-34', 'current', 'link-20');">current</a></tt> </tt>
 
403
<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-35" class="py-name"><a title="web2py.gluon.current
 
404
web2py.gluon.globals.current
 
405
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-35', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">:</tt> </tt>
 
406
<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line">            <tt class="py-name">hmac_key</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="web2py.gluon.current
 
407
web2py.gluon.globals.current
 
408
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-36', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">.</tt><tt class="py-name">hmac_key</tt> </tt>
 
409
<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"> </tt>
 
410
<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">hmac_key</tt><tt class="py-op">:</tt> </tt>
 
411
<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt class="py-comment"># generate an hmac signature of the vars &amp; args so can later</tt> </tt>
 
412
<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># verify the user hasn't messed with anything</tt> </tt>
 
413
<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
414
<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line">        <tt class="py-name">h_args</tt> <tt class="py-op">=</tt> <tt class="py-string">'/%s/%s/%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function2</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
413
415
<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"> </tt>
414
 
<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">list_vars</tt><tt class="py-op">:</tt> </tt>
415
 
<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'?%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">list_vars</tt><tt class="py-op">)</tt> </tt>
416
 
<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">anchor</tt><tt class="py-op">:</tt> </tt>
417
 
<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'#'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
418
 
<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">extension</tt><tt class="py-op">:</tt> </tt>
419
 
<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-name">function</tt> <tt class="py-op">+=</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt class="py-name">extension</tt> </tt>
420
 
<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line"> </tt>
421
 
<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-42" class="py-name"><a title="web2py.gluon.html.regex_crlf" class="py-name" href="#" onclick="return doclink('link-42', 'regex_crlf', 'link-12');">regex_crlf</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method web2py.gluon.tools.Crud.search()=web2py.gluon.tools.Crud-class.html#search"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-43', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-44', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
422
 
<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'CRLF Injection Detected'</tt> </tt>
423
 
<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">    <tt id="link-45" 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
424
 
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-45', 'url', 'link-45');">url</a></tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="web2py.gluon.rewrite" class="py-name" href="#" onclick="return doclink('link-46', 'rewrite', 'link-2');">rewrite</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Function web2py.gluon.rewrite.url_out()=web2py.gluon.rewrite-module.html#url_out"><a title="web2py.gluon.rewrite.url_out" class="py-name" href="#" onclick="return doclink('link-47', 'url_out', 'link-47');">url_out</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt id="link-48" class="py-name"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-48', 'env', 'link-22');">env</a></tt><tt class="py-op">,</tt> <tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function</tt><tt class="py-op">,</tt> </tt>
425
 
<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">                          <tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">,</tt> <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
426
 
<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-49" class="py-name"><a title="web2py.gluon.tools.Auth.url
427
 
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-49', 'url', 'link-45');">url</a></tt> </tt>
428
 
</div><a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"> </tt>
429
 
<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line"> </tt>
430
 
<a name="verifyURL"></a><div id="verifyURL-def"><a name="L291"></a><tt class="py-lineno"> 291</tt> <a class="py-toggle" href="#" id="verifyURL-toggle" onclick="return toggle('verifyURL');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#verifyURL">verifyURL</a><tt class="py-op">(</tt><tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">hmac_key</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">hash_vars</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">user_signature</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
431
 
</div><div id="verifyURL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="verifyURL-expanded"><a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
432
 
<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"><tt class="py-docstring">    Verifies that a request's args &amp; vars have not been tampered with by the user</tt> </tt>
433
 
<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
434
 
<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"><tt class="py-docstring">    :param request: web2py's request object</tt> </tt>
435
 
<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line"><tt class="py-docstring">    :param hmac_key: the key to authenticate with, must be the same one previously</tt> </tt>
436
 
<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"><tt class="py-docstring">                    used when calling URL()</tt> </tt>
437
 
<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line"><tt class="py-docstring">    :param hash_vars: which vars to include in our hashing. (Optional)</tt> </tt>
438
 
<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line"><tt class="py-docstring">                    Only uses the 1st value currently</tt> </tt>
439
 
<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line"><tt class="py-docstring">                    True (or undefined) means all, False none,</tt> </tt>
440
 
<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"><tt class="py-docstring">                    an iterable just the specified keys</tt> </tt>
441
 
<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
442
 
<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"><tt class="py-docstring">    do not call directly. Use instead:</tt> </tt>
443
 
<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
444
 
<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line"><tt class="py-docstring">    URL.verify(hmac_key='...')</tt> </tt>
445
 
<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
446
 
<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line"><tt class="py-docstring">    the key has to match the one used to generate the URL.</tt> </tt>
447
 
<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
448
 
<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r = Storage()</tt> </tt>
449
 
<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; gv = Storage(p=(1,3),q=2,_signature='5d06bb8a4a6093dd325da2ee591c35c61afbd3c6')</tt> </tt>
450
 
<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.update(dict(application='a', controller='c', function='f'))</tt> </tt>
451
 
<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r['args'] = ['x', 'y', 'z']</tt> </tt>
452
 
<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r['get_vars'] = gv</tt> </tt>
453
 
<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
454
 
<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"><tt class="py-docstring">        True</tt> </tt>
455
 
<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'kay')</tt> </tt>
456
 
<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line"><tt class="py-docstring">        False</tt> </tt>
457
 
<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.get_vars.p = (3, 1)</tt> </tt>
458
 
<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
459
 
<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line"><tt class="py-docstring">        True</tt> </tt>
460
 
<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.get_vars.p = (3, 2)</tt> </tt>
461
 
<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
462
 
<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"><tt class="py-docstring">        False</tt> </tt>
463
 
<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
464
 
<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
465
 
<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"> </tt>
466
 
<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="web2py.gluon.rocket.Headers.has_key" class="py-name" href="#" onclick="return doclink('link-50', 'has_key', 'link-28');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
467
 
<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> <tt class="py-comment"># no signature in the request URL</tt> </tt>
468
 
<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"> </tt>
469
 
<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">    <tt class="py-comment"># check if user_signature requires</tt> </tt>
470
 
<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">user_signature</tt><tt class="py-op">:</tt> </tt>
471
 
<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-51" class="py-name"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-51', 'globals', 'link-18');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-52" class="py-name"><a title="web2py.gluon.current
472
 
web2py.gluon.globals.current
473
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-52', 'current', 'link-19');">current</a></tt> </tt>
474
 
<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-53" class="py-name"><a title="web2py.gluon.current
475
 
web2py.gluon.globals.current
476
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-53', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">:</tt> </tt>
477
 
<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
478
 
<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">        <tt class="py-name">hmac_key</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="web2py.gluon.current
479
 
web2py.gluon.globals.current
480
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-54', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">.</tt><tt class="py-name">hmac_key</tt> </tt>
481
 
<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hmac_key</tt><tt class="py-op">:</tt> </tt>
482
 
<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
483
 
<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"> </tt>
484
 
<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">    <tt class="py-comment"># get our sig from request.get_vars for later comparison</tt> </tt>
485
 
<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">original_sig</tt> <tt class="py-op">=</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt class="py-name">_signature</tt> </tt>
486
 
<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line"> </tt>
487
 
<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">    <tt class="py-comment"># now generate a new hmac for the remaining args &amp; vars</tt> </tt>
488
 
<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">vars</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">,</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
489
 
<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line"> </tt>
490
 
<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">    <tt class="py-comment"># remove the signature var since it was not part of our signed message</tt> </tt>
491
 
<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt> </tt>
492
 
<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"> </tt>
493
 
<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">    <tt class="py-comment"># join all the args &amp; vars into one long string</tt> </tt>
494
 
<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
495
 
<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">    <tt class="py-comment"># always include all of the args</tt> </tt>
496
 
<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-55', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-56', 'x', 'link-25');">x</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-57" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-57', 'x', 'link-25');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
497
 
<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">    <tt class="py-name">h_args</tt> <tt class="py-op">=</tt> <tt class="py-string">'/%s/%s/%s.%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> </tt>
498
 
<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">controller</tt><tt class="py-op">,</tt> </tt>
499
 
<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">function</tt><tt class="py-op">,</tt> </tt>
500
 
<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt><tt class="py-op">,</tt> </tt>
501
 
<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">                                 <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
502
 
<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line"> </tt>
503
 
<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">    <tt class="py-comment"># but only include those vars specified (allows more flexibility for use with</tt> </tt>
504
 
<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># forms or ajax)</tt> </tt>
505
 
<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
506
 
<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">    <tt class="py-name">list_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
507
 
<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">vals</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-58', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
508
 
<a name="L363"></a><tt class="py-lineno"> 363</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">vals</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
509
 
<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">            <tt class="py-name">vals</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">vals</tt><tt class="py-op">]</tt> </tt>
510
 
<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">vals</tt><tt class="py-op">:</tt> </tt>
511
 
<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">            <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="web2py.gluon.html.DIV.append
512
 
web2py.gluon.template.BlockNode.append
513
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-59', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
514
 
<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line"> </tt>
515
 
<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">    <tt class="py-comment"># which of the vars are to be included?</tt> </tt>
516
 
<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt>       <tt class="py-comment"># include them all</tt> </tt>
517
 
<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">list_vars</tt> </tt>
518
 
<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt>    <tt class="py-comment"># include none of them</tt> </tt>
519
 
<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
520
 
<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt>                       <tt class="py-comment"># include just those specified</tt> </tt>
521
 
<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">        <tt class="py-comment"># wrap in a try - if the desired vars have been removed it'll fail</tt> </tt>
522
 
<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
523
 
<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">hash_vars</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
524
 
<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">                <tt class="py-name">hash_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
525
 
<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-60', 'k', 'link-35');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-61', 'k', 'link-35');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_vars</tt> <tt class="py-keyword">if</tt> <tt id="link-62" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-62', 'k', 'link-35');">k</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
526
 
<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
527
 
<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">            <tt class="py-comment"># user has removed one of our vars! Immediate fail</tt> </tt>
528
 
<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
529
 
<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">    <tt class="py-comment"># build the full message string with both args &amp; vars</tt> </tt>
530
 
<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt id="link-63" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-63', 'message', 'link-38');">message</a></tt> <tt class="py-op">=</tt> <tt class="py-name">h_args</tt> <tt class="py-op">+</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">h_vars</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
416
<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line">        <tt class="py-comment"># how many of the vars should we include in our hash?</tt> </tt>
 
417
<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt>       <tt class="py-comment"># include them all</tt> </tt>
 
418
<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">list_vars</tt> </tt>
 
419
<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt>    <tt class="py-comment"># include none of them</tt> </tt>
 
420
<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
421
<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt>                       <tt class="py-comment"># include just those specified</tt> </tt>
 
422
<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">hash_vars</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
423
<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">                <tt class="py-name">hash_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
 
424
<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name" targets="Variable psycopg2.k=psycopg2-module.html#k"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-37', 'k', 'link-37');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-38', 'k', 'link-37');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_vars</tt> <tt class="py-keyword">if</tt> <tt id="link-39" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-39', 'k', 'link-37');">k</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
 
425
<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line"> </tt>
 
426
<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-comment"># re-assembling the same way during hash authentication</tt> </tt>
 
427
<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt id="link-40" class="py-name" targets="Variable web2py.gluon.http.HTTP.message=web2py.gluon.http.HTTP-class.html#message"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-40', 'message', 'link-40');">message</a></tt> <tt class="py-op">=</tt> <tt class="py-name">h_args</tt> <tt class="py-op">+</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">h_vars</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
428
<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"> </tt>
 
429
<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="web2py.gluon.utils.hmac_hash" class="py-name" href="#" onclick="return doclink('link-41', 'hmac_hash', 'link-11');">hmac_hash</a></tt><tt class="py-op">(</tt><tt id="link-42" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-42', 'message', 'link-40');">message</a></tt><tt class="py-op">,</tt> <tt class="py-name">hmac_key</tt><tt class="py-op">,</tt> <tt class="py-name">digest_alg</tt><tt class="py-op">=</tt><tt class="py-string">'sha1'</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">=</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
 
430
<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt class="py-comment"># add the signature into vars</tt> </tt>
 
431
<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="web2py.gluon.html.DIV.append
 
432
web2py.gluon.template.BlockNode.append
 
433
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-43', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
434
<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"> </tt>
 
435
<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">list_vars</tt><tt class="py-op">:</tt> </tt>
 
436
<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'?%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">list_vars</tt><tt class="py-op">)</tt> </tt>
 
437
<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">anchor</tt><tt class="py-op">:</tt> </tt>
 
438
<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">+=</tt> <tt class="py-string">'#'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">anchor</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
439
<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">extension</tt><tt class="py-op">:</tt> </tt>
 
440
<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt class="py-name">function</tt> <tt class="py-op">+=</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt class="py-name">extension</tt> </tt>
 
441
<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line"> </tt>
 
442
<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-44" class="py-name"><a title="web2py.gluon.html.regex_crlf" class="py-name" href="#" onclick="return doclink('link-44', 'regex_crlf', 'link-12');">regex_crlf</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method web2py.gluon.tools.Crud.search()=web2py.gluon.tools.Crud-class.html#search"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-45', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="web2py.gluon.html.join
 
443
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-46', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
444
<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'CRLF Injection Detected'</tt> </tt>
 
445
<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">    <tt id="link-47" 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
 
446
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-47', 'url', 'link-47');">url</a></tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="web2py.gluon.rewrite" class="py-name" href="#" onclick="return doclink('link-48', 'rewrite', 'link-2');">rewrite</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Function web2py.gluon.rewrite.url_out()=web2py.gluon.rewrite-module.html#url_out"><a title="web2py.gluon.rewrite.url_out" class="py-name" href="#" onclick="return doclink('link-49', 'url_out', 'link-49');">url_out</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="web2py.gluon.shell.env" class="py-name" href="#" onclick="return doclink('link-50', 'env', 'link-23');">env</a></tt><tt class="py-op">,</tt> <tt class="py-name">application</tt><tt class="py-op">,</tt> <tt class="py-name">controller</tt><tt class="py-op">,</tt> <tt class="py-name">function</tt><tt class="py-op">,</tt> </tt>
 
447
<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">                          <tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-name">other</tt><tt class="py-op">,</tt> <tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
 
448
<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-51" class="py-name"><a title="web2py.gluon.tools.Auth.url
 
449
web2py.gluon.tools.Crud.url" class="py-name" href="#" onclick="return doclink('link-51', 'url', 'link-47');">url</a></tt> </tt>
 
450
</div><a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"> </tt>
 
451
<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line"> </tt>
 
452
<a name="verifyURL"></a><div id="verifyURL-def"><a name="L308"></a><tt class="py-lineno"> 308</tt> <a class="py-toggle" href="#" id="verifyURL-toggle" onclick="return toggle('verifyURL');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#verifyURL">verifyURL</a><tt class="py-op">(</tt><tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">hmac_key</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">hash_vars</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">user_signature</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
453
</div><div id="verifyURL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="verifyURL-expanded"><a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
454
<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line"><tt class="py-docstring">    Verifies that a request's args &amp; vars have not been tampered with by the user</tt> </tt>
 
455
<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
456
<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"><tt class="py-docstring">    :param request: web2py's request object</tt> </tt>
 
457
<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"><tt class="py-docstring">    :param hmac_key: the key to authenticate with, must be the same one previously</tt> </tt>
 
458
<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"><tt class="py-docstring">                    used when calling URL()</tt> </tt>
 
459
<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"><tt class="py-docstring">    :param hash_vars: which vars to include in our hashing. (Optional)</tt> </tt>
 
460
<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line"><tt class="py-docstring">                    Only uses the 1st value currently</tt> </tt>
 
461
<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line"><tt class="py-docstring">                    True (or undefined) means all, False none,</tt> </tt>
 
462
<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line"><tt class="py-docstring">                    an iterable just the specified keys</tt> </tt>
 
463
<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
464
<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line"><tt class="py-docstring">    do not call directly. Use instead:</tt> </tt>
 
465
<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
466
<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line"><tt class="py-docstring">    URL.verify(hmac_key='...')</tt> </tt>
 
467
<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
468
<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"><tt class="py-docstring">    the key has to match the one used to generate the URL.</tt> </tt>
 
469
<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
470
<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r = Storage()</tt> </tt>
 
471
<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; gv = Storage(p=(1,3),q=2,_signature='a32530f0d0caa80964bb92aad2bedf8a4486a31f')</tt> </tt>
 
472
<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.update(dict(application='a', controller='c', function='f', extension='html'))</tt> </tt>
 
473
<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r['args'] = ['x', 'y', 'z']</tt> </tt>
 
474
<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r['get_vars'] = gv</tt> </tt>
 
475
<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
 
476
<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-docstring">        True</tt> </tt>
 
477
<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'kay')</tt> </tt>
 
478
<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line"><tt class="py-docstring">        False</tt> </tt>
 
479
<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.get_vars.p = (3, 1)</tt> </tt>
 
480
<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
 
481
<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"><tt class="py-docstring">        True</tt> </tt>
 
482
<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; r.get_vars.p = (3, 2)</tt> </tt>
 
483
<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; verifyURL(r, 'key')</tt> </tt>
 
484
<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"><tt class="py-docstring">        False</tt> </tt>
 
485
<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
486
<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
487
<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"> </tt>
 
488
<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
489
<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> <tt class="py-comment"># no signature in the request URL</tt> </tt>
 
490
<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line"> </tt>
 
491
<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">    <tt class="py-comment"># check if user_signature requires</tt> </tt>
 
492
<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">user_signature</tt><tt class="py-op">:</tt> </tt>
 
493
<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-52" class="py-name"><a title="web2py.gluon.globals" class="py-name" href="#" onclick="return doclink('link-52', 'globals', 'link-19');">globals</a></tt> <tt class="py-keyword">import</tt> <tt id="link-53" class="py-name"><a title="web2py.gluon.current
 
494
web2py.gluon.globals.current
 
495
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-53', 'current', 'link-20');">current</a></tt> </tt>
 
496
<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-54" class="py-name"><a title="web2py.gluon.current
 
497
web2py.gluon.globals.current
 
498
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-54', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">:</tt> </tt>
 
499
<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
500
<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">        <tt class="py-name">hmac_key</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="web2py.gluon.current
 
501
web2py.gluon.globals.current
 
502
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-55', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">auth</tt><tt class="py-op">.</tt><tt class="py-name">hmac_key</tt> </tt>
 
503
<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hmac_key</tt><tt class="py-op">:</tt> </tt>
 
504
<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
505
<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"> </tt>
 
506
<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">    <tt class="py-comment"># get our sig from request.get_vars for later comparison</tt> </tt>
 
507
<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">original_sig</tt> <tt class="py-op">=</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt class="py-name">_signature</tt> </tt>
 
508
<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"> </tt>
 
509
<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">    <tt class="py-comment"># now generate a new hmac for the remaining args &amp; vars</tt> </tt>
 
510
<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">vars</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">,</tt> <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
 
511
<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line"> </tt>
 
512
<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">    <tt class="py-comment"># remove the signature var since it was not part of our signed message</tt> </tt>
 
513
<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'_signature'</tt><tt class="py-op">)</tt> </tt>
 
514
<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"> </tt>
 
515
<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">    <tt class="py-comment"># join all the args &amp; vars into one long string</tt> </tt>
 
516
<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
517
<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">    <tt class="py-comment"># always include all of the args</tt> </tt>
 
518
<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="web2py.gluon.html.join
 
519
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-56', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-57', 'x', 'link-26');">x</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-58" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-58', 'x', 'link-26');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
 
520
<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">    <tt class="py-name">h_args</tt> <tt class="py-op">=</tt> <tt class="py-string">'/%s/%s/%s.%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">application</tt><tt class="py-op">,</tt> </tt>
 
521
<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">controller</tt><tt class="py-op">,</tt> </tt>
 
522
<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">function</tt><tt class="py-op">,</tt> </tt>
 
523
<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">                                 <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt><tt class="py-op">,</tt> </tt>
 
524
<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">                                 <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
 
525
<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"> </tt>
 
526
<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line">    <tt class="py-comment"># but only include those vars specified (allows more flexibility for use with</tt> </tt>
 
527
<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># forms or ajax)</tt> </tt>
 
528
<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
529
<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">    <tt class="py-name">list_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
530
<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">vals</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
531
<a name="L380"></a><tt class="py-lineno"> 380</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">vals</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
532
<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line">            <tt class="py-name">vals</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">vals</tt><tt class="py-op">]</tt> </tt>
 
533
<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">vals</tt><tt class="py-op">:</tt> </tt>
 
534
<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">            <tt class="py-name">list_vars</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="web2py.gluon.html.DIV.append
 
535
web2py.gluon.template.BlockNode.append
 
536
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-59', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
531
537
<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"> </tt>
532
 
<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">    <tt class="py-comment"># hash with the hmac_key provided</tt> </tt>
533
 
<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="web2py.gluon.utils.hmac_hash" class="py-name" href="#" onclick="return doclink('link-64', 'hmac_hash', 'link-11');">hmac_hash</a></tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-65', 'message', 'link-38');">message</a></tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hmac_key</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">salt</tt><tt class="py-op">=</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
534
 
<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"> </tt>
535
 
<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">    <tt class="py-comment"># put _signature back in get_vars just in case a second call to URL.verify is performed</tt> </tt>
536
 
<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># (otherwise it'll immediately return false)</tt> </tt>
537
 
<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">[</tt><tt class="py-string">'_signature'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">original_sig</tt> </tt>
538
 
<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line"> </tt>
539
 
<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">    <tt class="py-comment"># return whether or not the signature in the request matched the one we just generated</tt> </tt>
540
 
<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># (I.E. was the message the same as the one we originally signed)</tt> </tt>
541
 
<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">return</tt> <tt class="py-name">original_sig</tt> <tt class="py-op">==</tt> <tt class="py-name">sig</tt> </tt>
542
 
</div><a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"> </tt>
543
 
<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt id="link-66" class="py-name" targets="Function web2py.gluon.html.URL()=web2py.gluon.html-module.html#URL"><a title="web2py.gluon.html.URL" class="py-name" href="#" onclick="return doclink('link-66', 'URL', 'link-66');">URL</a></tt><tt class="py-op">.</tt><tt class="py-name">verify</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Function web2py.gluon.html.verifyURL()=web2py.gluon.html-module.html#verifyURL"><a title="web2py.gluon.html.verifyURL" class="py-name" href="#" onclick="return doclink('link-67', 'verifyURL', 'link-67');">verifyURL</a></tt> </tt>
544
 
<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"> </tt>
545
 
<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt id="link-68" class="py-name" targets="Variable web2py.gluon.ON=web2py.gluon-module.html#ON,Method web2py.gluon.dal.BaseAdapter.ON()=web2py.gluon.dal.BaseAdapter-class.html#ON,Method web2py.gluon.dal.NoSQLAdapter.ON()=web2py.gluon.dal.NoSQLAdapter-class.html#ON,Variable web2py.gluon.html.ON=web2py.gluon.html-module.html#ON,Variable web2py.gluon.tools.ON=web2py.gluon.tools-module.html#ON"><a title="web2py.gluon.ON
 
538
<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">    <tt class="py-comment"># which of the vars are to be included?</tt> </tt>
 
539
<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt>       <tt class="py-comment"># include them all</tt> </tt>
 
540
<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line">        <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">list_vars</tt> </tt>
 
541
<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt>    <tt class="py-comment"># include none of them</tt> </tt>
 
542
<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">        <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
543
<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt>                       <tt class="py-comment"># include just those specified</tt> </tt>
 
544
<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line">        <tt class="py-comment"># wrap in a try - if the desired vars have been removed it'll fail</tt> </tt>
 
545
<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
546
<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hash_vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">hash_vars</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
547
<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line">                <tt class="py-name">hash_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
 
548
<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">            <tt class="py-name">h_vars</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-60', 'k', 'link-37');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-61', 'k', 'link-37');">k</a></tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_vars</tt> <tt class="py-keyword">if</tt> <tt id="link-62" class="py-name"><a title="psycopg2.k" class="py-name" href="#" onclick="return doclink('link-62', 'k', 'link-37');">k</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">hash_vars</tt><tt class="py-op">]</tt> </tt>
 
549
<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
550
<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line">            <tt class="py-comment"># user has removed one of our vars! Immediate fail</tt> </tt>
 
551
<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
552
<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">    <tt class="py-comment"># build the full message string with both args &amp; vars</tt> </tt>
 
553
<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt id="link-63" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-63', 'message', 'link-40');">message</a></tt> <tt class="py-op">=</tt> <tt class="py-name">h_args</tt> <tt class="py-op">+</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">h_vars</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
554
<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"> </tt>
 
555
<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line">    <tt class="py-comment"># hash with the hmac_key provided</tt> </tt>
 
556
<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="web2py.gluon.utils.hmac_hash" class="py-name" href="#" onclick="return doclink('link-64', 'hmac_hash', 'link-11');">hmac_hash</a></tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="web2py.gluon.http.HTTP.message" class="py-name" href="#" onclick="return doclink('link-65', 'message', 'link-40');">message</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hmac_key</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">digest_alg</tt><tt class="py-op">=</tt><tt class="py-string">'sha1'</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">=</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
 
557
<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"> </tt>
 
558
<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line">    <tt class="py-comment"># put _signature back in get_vars just in case a second call to URL.verify is performed</tt> </tt>
 
559
<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># (otherwise it'll immediately return false)</tt> </tt>
 
560
<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">get_vars</tt><tt class="py-op">[</tt><tt class="py-string">'_signature'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">original_sig</tt> </tt>
 
561
<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line"> </tt>
 
562
<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">    <tt class="py-comment"># return whether or not the signature in the request matched the one we just generated</tt> </tt>
 
563
<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># (I.E. was the message the same as the one we originally signed)</tt> </tt>
 
564
<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">return</tt> <tt class="py-name">original_sig</tt> <tt class="py-op">==</tt> <tt class="py-name">sig</tt> </tt>
 
565
</div><a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"> </tt>
 
566
<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt id="link-66" class="py-name" targets="Function web2py.gluon.html.URL()=web2py.gluon.html-module.html#URL"><a title="web2py.gluon.html.URL" class="py-name" href="#" onclick="return doclink('link-66', 'URL', 'link-66');">URL</a></tt><tt class="py-op">.</tt><tt class="py-name">verify</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Function web2py.gluon.html.verifyURL()=web2py.gluon.html-module.html#verifyURL"><a title="web2py.gluon.html.verifyURL" class="py-name" href="#" onclick="return doclink('link-67', 'verifyURL', 'link-67');">verifyURL</a></tt> </tt>
 
567
<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"> </tt>
 
568
<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line"><tt id="link-68" class="py-name" targets="Variable web2py.gluon.ON=web2py.gluon-module.html#ON,Method web2py.gluon.dal.BaseAdapter.ON()=web2py.gluon.dal.BaseAdapter-class.html#ON,Method web2py.gluon.dal.NoSQLAdapter.ON()=web2py.gluon.dal.NoSQLAdapter-class.html#ON,Variable web2py.gluon.html.ON=web2py.gluon.html-module.html#ON,Variable web2py.gluon.tools.ON=web2py.gluon.tools-module.html#ON"><a title="web2py.gluon.ON
546
569
web2py.gluon.dal.BaseAdapter.ON
547
570
web2py.gluon.dal.NoSQLAdapter.ON
548
571
web2py.gluon.html.ON
549
572
web2py.gluon.tools.ON" class="py-name" href="#" onclick="return doclink('link-68', 'ON', 'link-68');">ON</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
550
 
<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"> </tt>
551
 
<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"> </tt>
552
 
<a name="XmlComponent"></a><div id="XmlComponent-def"><a name="L401"></a><tt class="py-lineno"> 401</tt> <a class="py-toggle" href="#" id="XmlComponent-toggle" onclick="return toggle('XmlComponent');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XmlComponent-class.html">XmlComponent</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
553
 
</div><div id="XmlComponent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XmlComponent-expanded"><a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
554
 
<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-docstring">    Abstract root for all Html components</tt> </tt>
555
 
<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
556
 
<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"> </tt>
557
 
<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">    <tt class="py-comment"># TODO: move some DIV methods to here</tt> </tt>
558
 
<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
559
 
<a name="XmlComponent.xml"></a><div id="XmlComponent.xml-def"><a name="L408"></a><tt class="py-lineno"> 408</tt> <a class="py-toggle" href="#" id="XmlComponent.xml-toggle" onclick="return toggle('XmlComponent.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XmlComponent-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
560
 
</div><div id="XmlComponent.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XmlComponent.xml-expanded"><a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt>
561
 
</div></div><a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line"> </tt>
562
 
<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line"> </tt>
563
 
<a name="XML"></a><div id="XML-def"><a name="L412"></a><tt class="py-lineno"> 412</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html">XML</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
564
 
</div><div id="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
565
 
<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"><tt class="py-docstring">    use it to wrap a string that contains XML/HTML so that it will not be</tt> </tt>
566
 
<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line"><tt class="py-docstring">    escaped by the template</tt> </tt>
567
 
<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
568
 
<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"><tt class="py-docstring">    example:</tt> </tt>
569
 
<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
570
 
<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; XML('&lt;h1&gt;Hello&lt;/h1&gt;').xml()</tt> </tt>
571
 
<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-docstring">    '&lt;h1&gt;Hello&lt;/h1&gt;'</tt> </tt>
 
573
<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"> </tt>
 
574
<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"> </tt>
 
575
<a name="XmlComponent"></a><div id="XmlComponent-def"><a name="L418"></a><tt class="py-lineno"> 418</tt> <a class="py-toggle" href="#" id="XmlComponent-toggle" onclick="return toggle('XmlComponent');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XmlComponent-class.html">XmlComponent</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
576
</div><div id="XmlComponent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XmlComponent-expanded"><a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
577
<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-docstring">    Abstract root for all Html components</tt> </tt>
572
578
<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
573
579
<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line"> </tt>
574
 
<a name="XML.__init__"></a><div id="XML.__init__-def"><a name="L423"></a><tt class="py-lineno"> 423</tt> <a class="py-toggle" href="#" id="XML.__init__-toggle" onclick="return toggle('XML.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__init__">__init__</a><tt class="py-op">(</tt> </tt>
575
 
<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">        <tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
576
 
<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">        <tt class="py-param">text</tt><tt class="py-op">,</tt> </tt>
577
 
<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt class="py-param">sanitize</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
578
 
<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt class="py-param">permitted_tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
579
 
<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
580
 
<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
581
 
<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">            <tt class="py-string">'blockquote'</tt><tt class="py-op">,</tt> </tt>
582
 
<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">            <tt class="py-string">'br/'</tt><tt class="py-op">,</tt> </tt>
583
 
<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">            <tt class="py-string">'i'</tt><tt class="py-op">,</tt> </tt>
584
 
<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">            <tt class="py-string">'li'</tt><tt class="py-op">,</tt> </tt>
585
 
<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">            <tt class="py-string">'ol'</tt><tt class="py-op">,</tt> </tt>
586
 
<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">            <tt class="py-string">'ul'</tt><tt class="py-op">,</tt> </tt>
587
 
<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">            <tt class="py-string">'p'</tt><tt class="py-op">,</tt> </tt>
588
 
<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">            <tt class="py-string">'cite'</tt><tt class="py-op">,</tt> </tt>
589
 
<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">            <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
590
 
<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">            <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> </tt>
591
 
<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">            <tt class="py-string">'img/'</tt><tt class="py-op">,</tt> </tt>
592
 
<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">            <tt class="py-string">'h1'</tt><tt class="py-op">,</tt><tt class="py-string">'h2'</tt><tt class="py-op">,</tt><tt class="py-string">'h3'</tt><tt class="py-op">,</tt><tt class="py-string">'h4'</tt><tt class="py-op">,</tt><tt class="py-string">'h5'</tt><tt class="py-op">,</tt><tt class="py-string">'h6'</tt><tt class="py-op">,</tt> </tt>
593
 
<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">            <tt class="py-string">'table'</tt><tt class="py-op">,</tt><tt class="py-string">'tr'</tt><tt class="py-op">,</tt><tt class="py-string">'td'</tt><tt class="py-op">,</tt><tt class="py-string">'div'</tt><tt class="py-op">,</tt> </tt>
594
 
<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">            <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
595
 
<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt class="py-param">allowed_attributes</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
596
 
<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
597
 
<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">            <tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> <tt class="py-string">'alt'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
598
 
<a name="L447"></a><tt class="py-lineno"> 447</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>
599
 
<a name="L448"></a><tt class="py-lineno"> 448</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>
600
 
<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">            <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
601
 
<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
602
 
</div><div id="XML.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__init__-expanded"><a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
603
 
<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line"><tt class="py-docstring">        :param text: the XML text</tt> </tt>
604
 
<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line"><tt class="py-docstring">        :param sanitize: sanitize text using the permitted tags and allowed</tt> </tt>
605
 
<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line"><tt class="py-docstring">            attributes (default False)</tt> </tt>
606
 
<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line"><tt class="py-docstring">        :param permitted_tags: list of permitted tags (default: simple list of</tt> </tt>
607
 
<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"><tt class="py-docstring">            tags)</tt> </tt>
608
 
<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line"><tt class="py-docstring">        :param allowed_attributes: dictionary of allowed attributed (default</tt> </tt>
609
 
<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line"><tt class="py-docstring">            for A, IMG and BlockQuote).</tt> </tt>
610
 
<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"><tt class="py-docstring">            The key is the tag; the value is a list of allowed attributes.</tt> </tt>
611
 
<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
612
 
<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"> </tt>
613
 
<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-69" class="py-name" targets="Function web2py.gluon.sanitizer.sanitize()=web2py.gluon.sanitizer-module.html#sanitize"><a title="web2py.gluon.sanitizer.sanitize" class="py-name" href="#" onclick="return doclink('link-69', 'sanitize', 'link-69');">sanitize</a></tt><tt class="py-op">:</tt> </tt>
614
 
<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="web2py.gluon.sanitizer" class="py-name" href="#" onclick="return doclink('link-70', 'sanitizer', 'link-1');">sanitizer</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="web2py.gluon.sanitizer.sanitize" class="py-name" href="#" onclick="return doclink('link-71', 'sanitize', 'link-69');">sanitize</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">permitted_tags</tt><tt class="py-op">,</tt> </tt>
615
 
<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">                    <tt class="py-name">allowed_attributes</tt><tt class="py-op">)</tt> </tt>
616
 
<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">        <tt class="py-keyword">if</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">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
617
 
<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-72', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt> </tt>
618
 
<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt class="py-keyword">elif</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>
619
 
<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">            <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-name">text</tt><tt class="py-op">)</tt> </tt>
620
 
<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
621
 
</div><a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line"> </tt>
622
 
<a name="XML.xml"></a><div id="XML.xml-def"><a name="L471"></a><tt class="py-lineno"> 471</tt> <a class="py-toggle" href="#" id="XML.xml-toggle" onclick="return toggle('XML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
623
 
</div><div id="XML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.xml-expanded"><a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
624
 
</div><a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line"> </tt>
625
 
<a name="XML.__str__"></a><div id="XML.__str__-def"><a name="L474"></a><tt class="py-lineno"> 474</tt> <a class="py-toggle" href="#" id="XML.__str__-toggle" onclick="return toggle('XML.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
626
 
</div><div id="XML.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__str__-expanded"><a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
580
<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">    <tt class="py-comment"># TODO: move some DIV methods to here</tt> </tt>
 
581
<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
582
<a name="XmlComponent.xml"></a><div id="XmlComponent.xml-def"><a name="L425"></a><tt class="py-lineno"> 425</tt> <a class="py-toggle" href="#" id="XmlComponent.xml-toggle" onclick="return toggle('XmlComponent.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XmlComponent-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
583
</div><div id="XmlComponent.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XmlComponent.xml-expanded"><a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt>
 
584
</div></div><a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"> </tt>
 
585
<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line"> </tt>
 
586
<a name="XML"></a><div id="XML-def"><a name="L429"></a><tt class="py-lineno"> 429</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html">XML</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
587
</div><div id="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
588
<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"><tt class="py-docstring">    use it to wrap a string that contains XML/HTML so that it will not be</tt> </tt>
 
589
<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"><tt class="py-docstring">    escaped by the template</tt> </tt>
 
590
<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
591
<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"><tt class="py-docstring">    example:</tt> </tt>
 
592
<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
593
<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; XML('&lt;h1&gt;Hello&lt;/h1&gt;').xml()</tt> </tt>
 
594
<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line"><tt class="py-docstring">    '&lt;h1&gt;Hello&lt;/h1&gt;'</tt> </tt>
 
595
<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
596
<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line"> </tt>
 
597
<a name="XML.__init__"></a><div id="XML.__init__-def"><a name="L440"></a><tt class="py-lineno"> 440</tt> <a class="py-toggle" href="#" id="XML.__init__-toggle" onclick="return toggle('XML.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__init__">__init__</a><tt class="py-op">(</tt> </tt>
 
598
<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
 
599
<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">        <tt class="py-param">text</tt><tt class="py-op">,</tt> </tt>
 
600
<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">        <tt class="py-param">sanitize</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
 
601
<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt class="py-param">permitted_tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
 
602
<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
 
603
<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
 
604
<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">            <tt class="py-string">'blockquote'</tt><tt class="py-op">,</tt> </tt>
 
605
<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">            <tt class="py-string">'br/'</tt><tt class="py-op">,</tt> </tt>
 
606
<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">            <tt class="py-string">'i'</tt><tt class="py-op">,</tt> </tt>
 
607
<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line">            <tt class="py-string">'li'</tt><tt class="py-op">,</tt> </tt>
 
608
<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">            <tt class="py-string">'ol'</tt><tt class="py-op">,</tt> </tt>
 
609
<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">            <tt class="py-string">'ul'</tt><tt class="py-op">,</tt> </tt>
 
610
<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">            <tt class="py-string">'p'</tt><tt class="py-op">,</tt> </tt>
 
611
<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">            <tt class="py-string">'cite'</tt><tt class="py-op">,</tt> </tt>
 
612
<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">            <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
 
613
<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line">            <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> </tt>
 
614
<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">            <tt class="py-string">'img/'</tt><tt class="py-op">,</tt> </tt>
 
615
<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">            <tt class="py-string">'h1'</tt><tt class="py-op">,</tt><tt class="py-string">'h2'</tt><tt class="py-op">,</tt><tt class="py-string">'h3'</tt><tt class="py-op">,</tt><tt class="py-string">'h4'</tt><tt class="py-op">,</tt><tt class="py-string">'h5'</tt><tt class="py-op">,</tt><tt class="py-string">'h6'</tt><tt class="py-op">,</tt> </tt>
 
616
<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">            <tt class="py-string">'table'</tt><tt class="py-op">,</tt><tt class="py-string">'tr'</tt><tt class="py-op">,</tt><tt class="py-string">'td'</tt><tt class="py-op">,</tt><tt class="py-string">'div'</tt><tt class="py-op">,</tt> </tt>
 
617
<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">            <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
 
618
<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">        <tt class="py-param">allowed_attributes</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
 
619
<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-string">'title'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
 
620
<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">            <tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'src'</tt><tt class="py-op">,</tt> <tt class="py-string">'alt'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
 
621
<a name="L464"></a><tt class="py-lineno"> 464</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>
 
622
<a name="L465"></a><tt class="py-lineno"> 465</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>
 
623
<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">            <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
 
624
<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
625
</div><div id="XML.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__init__-expanded"><a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
626
<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line"><tt class="py-docstring">        :param text: the XML text</tt> </tt>
 
627
<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line"><tt class="py-docstring">        :param sanitize: sanitize text using the permitted tags and allowed</tt> </tt>
 
628
<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"><tt class="py-docstring">            attributes (default False)</tt> </tt>
 
629
<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line"><tt class="py-docstring">        :param permitted_tags: list of permitted tags (default: simple list of</tt> </tt>
 
630
<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line"><tt class="py-docstring">            tags)</tt> </tt>
 
631
<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line"><tt class="py-docstring">        :param allowed_attributes: dictionary of allowed attributed (default</tt> </tt>
 
632
<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line"><tt class="py-docstring">            for A, IMG and BlockQuote).</tt> </tt>
 
633
<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"><tt class="py-docstring">            The key is the tag; the value is a list of allowed attributes.</tt> </tt>
 
634
<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
635
<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line"> </tt>
 
636
<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-69" class="py-name" targets="Function web2py.gluon.sanitizer.sanitize()=web2py.gluon.sanitizer-module.html#sanitize"><a title="web2py.gluon.sanitizer.sanitize" class="py-name" href="#" onclick="return doclink('link-69', 'sanitize', 'link-69');">sanitize</a></tt><tt class="py-op">:</tt> </tt>
 
637
<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="web2py.gluon.sanitizer" class="py-name" href="#" onclick="return doclink('link-70', 'sanitizer', 'link-1');">sanitizer</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="web2py.gluon.sanitizer.sanitize" class="py-name" href="#" onclick="return doclink('link-71', 'sanitize', 'link-69');">sanitize</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">permitted_tags</tt><tt class="py-op">,</tt> </tt>
 
638
<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">                    <tt class="py-name">allowed_attributes</tt><tt class="py-op">)</tt> </tt>
 
639
<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-keyword">if</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">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
640
<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-72', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt> </tt>
 
641
<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-keyword">elif</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>
 
642
<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">            <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-name">text</tt><tt class="py-op">)</tt> </tt>
 
643
<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
 
644
</div><a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"> </tt>
 
645
<a name="XML.xml"></a><div id="XML.xml-def"><a name="L488"></a><tt class="py-lineno"> 488</tt> <a class="py-toggle" href="#" id="XML.xml-toggle" onclick="return toggle('XML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
646
</div><div id="XML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.xml-expanded"><a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
 
647
</div><a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"> </tt>
 
648
<a name="XML.__str__"></a><div id="XML.__str__-def"><a name="L491"></a><tt class="py-lineno"> 491</tt> <a class="py-toggle" href="#" id="XML.__str__-toggle" onclick="return toggle('XML.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
649
</div><div id="XML.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__str__-expanded"><a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="web2py.gluon.dal.Rows.xml
627
650
web2py.gluon.html.A.xml
628
651
web2py.gluon.html.CODE.xml
629
652
web2py.gluon.html.DIV.xml
642
665
web2py.gluon.serializers.xml
643
666
web2py.gluon.tools.Recaptcha.xml
644
667
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-73', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
645
 
</div><a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"> </tt>
646
 
<a name="XML.__add__"></a><div id="XML.__add__-def"><a name="L477"></a><tt class="py-lineno"> 477</tt> <a class="py-toggle" href="#" id="XML.__add__-toggle" onclick="return toggle('XML.__add__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__add__">__add__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
647
 
</div><div id="XML.__add__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__add__-expanded"><a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
648
 
</div><a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line"> </tt>
649
 
<a name="XML.__radd__"></a><div id="XML.__radd__-def"><a name="L480"></a><tt class="py-lineno"> 480</tt> <a class="py-toggle" href="#" id="XML.__radd__-toggle" onclick="return toggle('XML.__radd__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__radd__">__radd__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
650
 
</div><div id="XML.__radd__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__radd__-expanded"><a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
651
 
</div><a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"> </tt>
652
 
<a name="XML.__cmp__"></a><div id="XML.__cmp__-def"><a name="L483"></a><tt class="py-lineno"> 483</tt> <a class="py-toggle" href="#" id="XML.__cmp__-toggle" onclick="return toggle('XML.__cmp__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__cmp__">__cmp__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
653
 
</div><div id="XML.__cmp__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__cmp__-expanded"><a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">cmp</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
654
 
</div><a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line"> </tt>
655
 
<a name="XML.__hash__"></a><div id="XML.__hash__-def"><a name="L486"></a><tt class="py-lineno"> 486</tt> <a class="py-toggle" href="#" id="XML.__hash__-toggle" onclick="return toggle('XML.__hash__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__hash__">__hash__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
656
 
</div><div id="XML.__hash__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__hash__-expanded"><a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
657
 
</div><a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line"> </tt>
658
 
<a name="XML.__getattr__"></a><div id="XML.__getattr__-def"><a name="L489"></a><tt class="py-lineno"> 489</tt> <a class="py-toggle" href="#" id="XML.__getattr__-toggle" onclick="return toggle('XML.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
659
 
</div><div id="XML.__getattr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getattr__-expanded"><a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-74" class="py-name" targets="Variable web2py.gluon.import_all.name=web2py.gluon.import_all-module.html#name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-74', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
660
 
</div><a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"> </tt>
661
 
<a name="XML.__getitem__"></a><div id="XML.__getitem__-def"><a name="L492"></a><tt class="py-lineno"> 492</tt> <a class="py-toggle" href="#" id="XML.__getitem__-toggle" onclick="return toggle('XML.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
662
 
</div><div id="XML.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getitem__-expanded"><a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
663
 
</div><a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line"> </tt>
664
 
<a name="XML.__getslice__"></a><div id="XML.__getslice__-def"><a name="L495"></a><tt class="py-lineno"> 495</tt> <a class="py-toggle" href="#" id="XML.__getslice__-toggle" onclick="return toggle('XML.__getslice__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getslice__">__getslice__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">i</tt><tt class="py-op">,</tt><tt class="py-param">j</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
665
 
</div><div id="XML.__getslice__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getslice__-expanded"><a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt>
666
 
</div><a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"> </tt>
667
 
<a name="XML.__iter__"></a><div id="XML.__iter__-def"><a name="L498"></a><tt class="py-lineno"> 498</tt> <a class="py-toggle" href="#" id="XML.__iter__-toggle" onclick="return toggle('XML.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__iter__">__iter__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
668
 
</div><div id="XML.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__iter__-expanded"><a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">yield</tt> <tt class="py-name">c</tt> </tt>
669
 
</div><a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line"> </tt>
670
 
<a name="XML.__len__"></a><div id="XML.__len__-def"><a name="L501"></a><tt class="py-lineno"> 501</tt> <a class="py-toggle" href="#" id="XML.__len__-toggle" onclick="return toggle('XML.__len__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
671
 
</div><div id="XML.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__len__-expanded"><a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-75" 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-75', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
672
 
</div><a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"> </tt>
673
 
<a name="XML.flatten"></a><div id="XML.flatten-def"><a name="L504"></a><tt class="py-lineno"> 504</tt> <a class="py-toggle" href="#" id="XML.flatten-toggle" onclick="return toggle('XML.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
674
 
</div><div id="XML.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.flatten-expanded"><a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
675
 
<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the XML object rendered by the render function</tt> </tt>
676
 
<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
677
 
<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-76" class="py-name"><a title="web2py.gluon.globals.Response.render
 
668
</div><a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"> </tt>
 
669
<a name="XML.__add__"></a><div id="XML.__add__-def"><a name="L494"></a><tt class="py-lineno"> 494</tt> <a class="py-toggle" href="#" id="XML.__add__-toggle" onclick="return toggle('XML.__add__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__add__">__add__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
670
</div><div id="XML.__add__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__add__-expanded"><a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
 
671
</div><a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"> </tt>
 
672
<a name="XML.__radd__"></a><div id="XML.__radd__-def"><a name="L497"></a><tt class="py-lineno"> 497</tt> <a class="py-toggle" href="#" id="XML.__radd__-toggle" onclick="return toggle('XML.__radd__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__radd__">__radd__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
673
</div><div id="XML.__radd__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__radd__-expanded"><a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
674
</div><a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line"> </tt>
 
675
<a name="XML.__cmp__"></a><div id="XML.__cmp__-def"><a name="L500"></a><tt class="py-lineno"> 500</tt> <a class="py-toggle" href="#" id="XML.__cmp__-toggle" onclick="return toggle('XML.__cmp__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__cmp__">__cmp__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
676
</div><div id="XML.__cmp__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__cmp__-expanded"><a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">cmp</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
677
</div><a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line"> </tt>
 
678
<a name="XML.__hash__"></a><div id="XML.__hash__-def"><a name="L503"></a><tt class="py-lineno"> 503</tt> <a class="py-toggle" href="#" id="XML.__hash__-toggle" onclick="return toggle('XML.__hash__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__hash__">__hash__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
679
</div><div id="XML.__hash__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__hash__-expanded"><a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
680
</div><a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"> </tt>
 
681
<a name="XML.__getattr__"></a><div id="XML.__getattr__-def"><a name="L506"></a><tt class="py-lineno"> 506</tt> <a class="py-toggle" href="#" id="XML.__getattr__-toggle" onclick="return toggle('XML.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
682
</div><div id="XML.__getattr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getattr__-expanded"><a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-74" class="py-name" targets="Variable web2py.gluon.import_all.name=web2py.gluon.import_all-module.html#name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-74', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
 
683
</div><a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line"> </tt>
 
684
<a name="XML.__getitem__"></a><div id="XML.__getitem__-def"><a name="L509"></a><tt class="py-lineno"> 509</tt> <a class="py-toggle" href="#" id="XML.__getitem__-toggle" onclick="return toggle('XML.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
685
</div><div id="XML.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getitem__-expanded"><a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
 
686
</div><a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"> </tt>
 
687
<a name="XML.__getslice__"></a><div id="XML.__getslice__-def"><a name="L512"></a><tt class="py-lineno"> 512</tt> <a class="py-toggle" href="#" id="XML.__getslice__-toggle" onclick="return toggle('XML.__getslice__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__getslice__">__getslice__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">i</tt><tt class="py-op">,</tt><tt class="py-param">j</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
688
</div><div id="XML.__getslice__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__getslice__-expanded"><a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt>
 
689
</div><a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"> </tt>
 
690
<a name="XML.__iter__"></a><div id="XML.__iter__-def"><a name="L515"></a><tt class="py-lineno"> 515</tt> <a class="py-toggle" href="#" id="XML.__iter__-toggle" onclick="return toggle('XML.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__iter__">__iter__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
691
</div><div id="XML.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__iter__-expanded"><a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">yield</tt> <tt class="py-name">c</tt> </tt>
 
692
</div><a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"> </tt>
 
693
<a name="XML.__len__"></a><div id="XML.__len__-def"><a name="L518"></a><tt class="py-lineno"> 518</tt> <a class="py-toggle" href="#" id="XML.__len__-toggle" onclick="return toggle('XML.__len__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
694
</div><div id="XML.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.__len__-expanded"><a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-75" 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-75', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
695
</div><a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"> </tt>
 
696
<a name="XML.flatten"></a><div id="XML.flatten-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="XML.flatten-toggle" onclick="return toggle('XML.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
697
</div><div id="XML.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.flatten-expanded"><a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
698
<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the XML object rendered by the render function</tt> </tt>
 
699
<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
700
<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-76" class="py-name"><a title="web2py.gluon.globals.Response.render
678
701
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-76', 'render', 'link-4');">render</a></tt><tt class="py-op">:</tt> </tt>
679
 
<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-77" class="py-name"><a title="web2py.gluon.globals.Response.render
 
702
<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-77" class="py-name"><a title="web2py.gluon.globals.Response.render
680
703
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-77', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
681
 
<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
682
 
</div><a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"> </tt>
683
 
<a name="XML.elements"></a><div id="XML.elements-def"><a name="L512"></a><tt class="py-lineno"> 512</tt> <a class="py-toggle" href="#" id="XML.elements-toggle" onclick="return toggle('XML.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
684
 
</div><div id="XML.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.elements-expanded"><a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
685
 
<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"><tt class="py-docstring">        to be considered experimental since the behavior of this method is questionable</tt> </tt>
686
 
<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"><tt class="py-docstring">        another options could be TAG(self.text).elements(*args,**kargs)</tt> </tt>
687
 
<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
688
 
<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
689
 
</div></div><a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line"> </tt>
690
 
<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"><tt class="py-comment">### important to allow safe session.flash=T(....)</tt> </tt>
691
 
<a name="XML_unpickle"></a><div id="XML_unpickle-def"><a name="L520"></a><tt class="py-lineno"> 520</tt> <a class="py-toggle" href="#" id="XML_unpickle-toggle" onclick="return toggle('XML_unpickle');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#XML_unpickle">XML_unpickle</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
692
 
</div><div id="XML_unpickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML_unpickle-expanded"><a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">marshal</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
693
 
</div><a name="XML_pickle"></a><div id="XML_pickle-def"><a name="L522"></a><tt class="py-lineno"> 522</tt> <a class="py-toggle" href="#" id="XML_pickle-toggle" onclick="return toggle('XML_pickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#XML_pickle">XML_pickle</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
694
 
</div><div id="XML_pickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML_pickle-expanded"><a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-78" class="py-name" targets="Function web2py.gluon.html.XML_unpickle()=web2py.gluon.html-module.html#XML_unpickle"><a title="web2py.gluon.html.XML_unpickle" class="py-name" href="#" onclick="return doclink('link-78', 'XML_unpickle', 'link-78');">XML_unpickle</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">marshal</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
695
 
</div><a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-name">copy_reg</tt><tt class="py-op">.</tt><tt class="py-name">pickle</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name" targets="Class web2py.gluon.html.XML=web2py.gluon.html.XML-class.html"><a title="web2py.gluon.html.XML" class="py-name" href="#" onclick="return doclink('link-79', 'XML', 'link-79');">XML</a></tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name" targets="Function web2py.gluon.html.XML_pickle()=web2py.gluon.html-module.html#XML_pickle"><a title="web2py.gluon.html.XML_pickle" class="py-name" href="#" onclick="return doclink('link-80', 'XML_pickle', 'link-80');">XML_pickle</a></tt><tt class="py-op">,</tt> <tt id="link-81" class="py-name"><a title="web2py.gluon.html.XML_unpickle" class="py-name" href="#" onclick="return doclink('link-81', 'XML_unpickle', 'link-78');">XML_unpickle</a></tt><tt class="py-op">)</tt> </tt>
696
 
<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"> </tt>
697
 
<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line"> </tt>
698
 
<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"> </tt>
699
 
<a name="DIV"></a><div id="DIV-def"><a name="L528"></a><tt class="py-lineno"> 528</tt> <a class="py-toggle" href="#" id="DIV-toggle" onclick="return toggle('DIV');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html">DIV</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
700
 
</div><div id="DIV-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DIV-expanded"><a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
701
 
<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-docstring">    HTML helper, for easy generating and manipulating a DOM structure.</tt> </tt>
702
 
<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-docstring">    Little or no validation is done.</tt> </tt>
703
 
<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
704
 
<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"><tt class="py-docstring">    Behaves like a dictionary regarding updating of attributes.</tt> </tt>
705
 
<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"><tt class="py-docstring">    Behaves like a list regarding inserting/appending components.</tt> </tt>
706
 
<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
707
 
<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
708
 
<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
709
 
<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; DIV('hello', 'world', _style='color:red;').xml()</tt> </tt>
710
 
<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;div style=\"color:red;\"&gt;helloworld&lt;/div&gt;'</tt> </tt>
711
 
<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
712
 
<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line"><tt class="py-docstring">    all other HTML helpers are derived from DIV.</tt> </tt>
713
 
<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
714
 
<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line"><tt class="py-docstring">    _something=\"value\" attributes are transparently translated into</tt> </tt>
715
 
<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"><tt class="py-docstring">    something=\"value\" HTML attributes</tt> </tt>
716
 
<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
717
 
<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line"> </tt>
718
 
<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">    <tt class="py-comment"># name of the tag, subclasses should update this</tt> </tt>
719
 
<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># tags ending with a '/' denote classes that cannot</tt> </tt>
720
 
<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># contain components</tt> </tt>
721
 
<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt id="link-82" 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
 
704
<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
 
705
</div><a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"> </tt>
 
706
<a name="XML.elements"></a><div id="XML.elements-def"><a name="L529"></a><tt class="py-lineno"> 529</tt> <a class="py-toggle" href="#" id="XML.elements-toggle" onclick="return toggle('XML.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XML-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
707
</div><div id="XML.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XML.elements-expanded"><a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
708
<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-docstring">        to be considered experimental since the behavior of this method is questionable</tt> </tt>
 
709
<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-docstring">        another options could be TAG(self.text).elements(*args,**kargs)</tt> </tt>
 
710
<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
711
<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
712
</div></div><a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"> </tt>
 
713
<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"><tt class="py-comment">### important to allow safe session.flash=T(....)</tt> </tt>
 
714
<a name="XML_unpickle"></a><div id="XML_unpickle-def"><a name="L537"></a><tt class="py-lineno"> 537</tt> <a class="py-toggle" href="#" id="XML_unpickle-toggle" onclick="return toggle('XML_unpickle');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#XML_unpickle">XML_unpickle</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
715
</div><div id="XML_unpickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML_unpickle-expanded"><a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">marshal</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
716
</div><a name="XML_pickle"></a><div id="XML_pickle-def"><a name="L539"></a><tt class="py-lineno"> 539</tt> <a class="py-toggle" href="#" id="XML_pickle-toggle" onclick="return toggle('XML_pickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#XML_pickle">XML_pickle</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
717
</div><div id="XML_pickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML_pickle-expanded"><a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-78" class="py-name" targets="Function web2py.gluon.html.XML_unpickle()=web2py.gluon.html-module.html#XML_unpickle"><a title="web2py.gluon.html.XML_unpickle" class="py-name" href="#" onclick="return doclink('link-78', 'XML_unpickle', 'link-78');">XML_unpickle</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">marshal</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
 
718
</div><a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line"><tt class="py-name">copy_reg</tt><tt class="py-op">.</tt><tt class="py-name">pickle</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name" targets="Class web2py.gluon.html.XML=web2py.gluon.html.XML-class.html"><a title="web2py.gluon.html.XML" class="py-name" href="#" onclick="return doclink('link-79', 'XML', 'link-79');">XML</a></tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name" targets="Function web2py.gluon.html.XML_pickle()=web2py.gluon.html-module.html#XML_pickle"><a title="web2py.gluon.html.XML_pickle" class="py-name" href="#" onclick="return doclink('link-80', 'XML_pickle', 'link-80');">XML_pickle</a></tt><tt class="py-op">,</tt> <tt id="link-81" class="py-name"><a title="web2py.gluon.html.XML_unpickle" class="py-name" href="#" onclick="return doclink('link-81', 'XML_unpickle', 'link-78');">XML_unpickle</a></tt><tt class="py-op">)</tt> </tt>
 
719
<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line"> </tt>
 
720
<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line"> </tt>
 
721
<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </tt>
 
722
<a name="DIV"></a><div id="DIV-def"><a name="L545"></a><tt class="py-lineno"> 545</tt> <a class="py-toggle" href="#" id="DIV-toggle" onclick="return toggle('DIV');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html">DIV</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
723
</div><div id="DIV-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DIV-expanded"><a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
724
<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line"><tt class="py-docstring">    HTML helper, for easy generating and manipulating a DOM structure.</tt> </tt>
 
725
<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"><tt class="py-docstring">    Little or no validation is done.</tt> </tt>
 
726
<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
727
<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line"><tt class="py-docstring">    Behaves like a dictionary regarding updating of attributes.</tt> </tt>
 
728
<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"><tt class="py-docstring">    Behaves like a list regarding inserting/appending components.</tt> </tt>
 
729
<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
730
<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
731
<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
732
<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; DIV('hello', 'world', _style='color:red;').xml()</tt> </tt>
 
733
<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;div style=\"color:red;\"&gt;helloworld&lt;/div&gt;'</tt> </tt>
 
734
<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
735
<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"><tt class="py-docstring">    all other HTML helpers are derived from DIV.</tt> </tt>
 
736
<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
737
<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"><tt class="py-docstring">    _something=\"value\" attributes are transparently translated into</tt> </tt>
 
738
<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"><tt class="py-docstring">    something=\"value\" HTML attributes</tt> </tt>
 
739
<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
740
<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line"> </tt>
 
741
<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">    <tt class="py-comment"># name of the tag, subclasses should update this</tt> </tt>
 
742
<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># tags ending with a '/' denote classes that cannot</tt> </tt>
 
743
<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment"># contain components</tt> </tt>
 
744
<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt id="link-82" 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
722
745
web2py.gluon.html.B.tag
723
746
web2py.gluon.html.BEAUTIFY.tag
724
747
web2py.gluon.html.BODY.tag
774
797
web2py.gluon.html.TT.tag
775
798
web2py.gluon.html.UL.tag
776
799
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-82', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
777
 
<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"> </tt>
778
 
<a name="DIV.__init__"></a><div id="DIV.__init__-def"><a name="L552"></a><tt class="py-lineno"> 552</tt> <a class="py-toggle" href="#" id="DIV.__init__-toggle" onclick="return toggle('DIV.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
779
 
</div><div id="DIV.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__init__-expanded"><a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
780
 
<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"><tt class="py-docstring">        :param *components: any components that should be nested in this element</tt> </tt>
781
 
<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line"><tt class="py-docstring">        :param **attributes: any attributes you want to give to this element</tt> </tt>
782
 
<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
783
 
<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"><tt class="py-docstring">        :raises SyntaxError: when a stand alone tag receives components</tt> </tt>
784
 
<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
785
 
<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"> </tt>
786
 
<a name="L560"></a><tt class="py-lineno"> 560</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-83" class="py-name"><a title="web2py.gluon.html.A.tag
 
800
<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"> </tt>
 
801
<a name="DIV.__init__"></a><div id="DIV.__init__-def"><a name="L569"></a><tt class="py-lineno"> 569</tt> <a class="py-toggle" href="#" id="DIV.__init__-toggle" onclick="return toggle('DIV.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
802
</div><div id="DIV.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__init__-expanded"><a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
803
<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line"><tt class="py-docstring">        :param *components: any components that should be nested in this element</tt> </tt>
 
804
<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line"><tt class="py-docstring">        :param **attributes: any attributes you want to give to this element</tt> </tt>
 
805
<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
806
<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"><tt class="py-docstring">        :raises SyntaxError: when a stand alone tag receives components</tt> </tt>
 
807
<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
808
<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"> </tt>
 
809
<a name="L577"></a><tt class="py-lineno"> 577</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-83" class="py-name"><a title="web2py.gluon.html.A.tag
787
810
web2py.gluon.html.B.tag
788
811
web2py.gluon.html.BEAUTIFY.tag
789
812
web2py.gluon.html.BODY.tag
839
862
web2py.gluon.html.TT.tag
840
863
web2py.gluon.html.UL.tag
841
864
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-83', 'tag', 'link-82');">tag</a></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-op">==</tt> <tt class="py-string">'/'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
842
 
<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;%s&gt; tags cannot have components'</tt>\ </tt>
843
 
<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">                 <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="web2py.gluon.html.A.tag
 
865
<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;%s&gt; tags cannot have components'</tt>\ </tt>
 
866
<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">                 <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="web2py.gluon.html.A.tag
844
867
web2py.gluon.html.B.tag
845
868
web2py.gluon.html.BEAUTIFY.tag
846
869
web2py.gluon.html.BODY.tag
896
919
web2py.gluon.html.TT.tag
897
920
web2py.gluon.html.UL.tag
898
921
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-84', 'tag', 'link-82');">tag</a></tt> </tt>
899
 
<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-85" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-85', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">components</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-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
900
 
<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
901
 
<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
902
 
<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
903
 
<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt> </tt>
904
 
<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method web2py.gluon.html.DIV._fixup()=web2py.gluon.html.DIV-class.html#_fixup,Method web2py.gluon.html.OPTGROUP._fixup()=web2py.gluon.html.OPTGROUP-class.html#_fixup,Method web2py.gluon.html.OPTION._fixup()=web2py.gluon.html.OPTION-class.html#_fixup,Method web2py.gluon.html.SELECT._fixup()=web2py.gluon.html.SELECT-class.html#_fixup,Method web2py.gluon.html.TABLE._fixup()=web2py.gluon.html.TABLE-class.html#_fixup,Method web2py.gluon.html.TBODY._fixup()=web2py.gluon.html.TBODY-class.html#_fixup,Method web2py.gluon.html.TFOOT._fixup()=web2py.gluon.html.TFOOT-class.html#_fixup,Method web2py.gluon.html.THEAD._fixup()=web2py.gluon.html.THEAD-class.html#_fixup,Method web2py.gluon.html.TR._fixup()=web2py.gluon.html.TR-class.html#_fixup,Method web2py.gluon.html.UL._fixup()=web2py.gluon.html.UL-class.html#_fixup"><a title="web2py.gluon.html.DIV._fixup
 
922
<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-85" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-85', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">components</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-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
923
<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
924
<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
925
<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
 
926
<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt> </tt>
 
927
<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method web2py.gluon.html.DIV._fixup()=web2py.gluon.html.DIV-class.html#_fixup,Method web2py.gluon.html.OPTGROUP._fixup()=web2py.gluon.html.OPTGROUP-class.html#_fixup,Method web2py.gluon.html.OPTION._fixup()=web2py.gluon.html.OPTION-class.html#_fixup,Method web2py.gluon.html.SELECT._fixup()=web2py.gluon.html.SELECT-class.html#_fixup,Method web2py.gluon.html.TABLE._fixup()=web2py.gluon.html.TABLE-class.html#_fixup,Method web2py.gluon.html.TBODY._fixup()=web2py.gluon.html.TBODY-class.html#_fixup,Method web2py.gluon.html.TFOOT._fixup()=web2py.gluon.html.TFOOT-class.html#_fixup,Method web2py.gluon.html.THEAD._fixup()=web2py.gluon.html.THEAD-class.html#_fixup,Method web2py.gluon.html.TR._fixup()=web2py.gluon.html.TR-class.html#_fixup,Method web2py.gluon.html.UL._fixup()=web2py.gluon.html.UL-class.html#_fixup"><a title="web2py.gluon.html.DIV._fixup
905
928
web2py.gluon.html.OPTGROUP._fixup
906
929
web2py.gluon.html.OPTION._fixup
907
930
web2py.gluon.html.SELECT._fixup
911
934
web2py.gluon.html.THEAD._fixup
912
935
web2py.gluon.html.TR._fixup
913
936
web2py.gluon.html.UL._fixup" class="py-name" href="#" onclick="return doclink('link-86', '_fixup', 'link-86');">_fixup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
914
 
<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">        <tt class="py-comment"># converts special attributes in components attributes</tt> </tt>
915
 
<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method web2py.gluon.html.DIV._postprocessing()=web2py.gluon.html.DIV-class.html#_postprocessing,Method web2py.gluon.html.FORM._postprocessing()=web2py.gluon.html.FORM-class.html#_postprocessing,Method web2py.gluon.html.INPUT._postprocessing()=web2py.gluon.html.INPUT-class.html#_postprocessing,Method web2py.gluon.html.SELECT._postprocessing()=web2py.gluon.html.SELECT-class.html#_postprocessing,Method web2py.gluon.html.TEXTAREA._postprocessing()=web2py.gluon.html.TEXTAREA-class.html#_postprocessing"><a title="web2py.gluon.html.DIV._postprocessing
 
937
<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">        <tt class="py-comment"># converts special attributes in components attributes</tt> </tt>
 
938
<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method web2py.gluon.html.DIV._postprocessing()=web2py.gluon.html.DIV-class.html#_postprocessing,Method web2py.gluon.html.FORM._postprocessing()=web2py.gluon.html.FORM-class.html#_postprocessing,Method web2py.gluon.html.INPUT._postprocessing()=web2py.gluon.html.INPUT-class.html#_postprocessing,Method web2py.gluon.html.SELECT._postprocessing()=web2py.gluon.html.SELECT-class.html#_postprocessing,Method web2py.gluon.html.TEXTAREA._postprocessing()=web2py.gluon.html.TEXTAREA-class.html#_postprocessing"><a title="web2py.gluon.html.DIV._postprocessing
916
939
web2py.gluon.html.FORM._postprocessing
917
940
web2py.gluon.html.INPUT._postprocessing
918
941
web2py.gluon.html.SELECT._postprocessing
919
942
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-87', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
920
 
<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
921
 
<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
922
 
<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name" targets="Method web2py.gluon.html.DIV._setnode()=web2py.gluon.html.DIV-class.html#_setnode"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-88', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
923
 
</div><a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"> </tt>
924
 
<a name="DIV.update"></a><div id="DIV.update-def"><a name="L575"></a><tt class="py-lineno"> 575</tt> <a class="py-toggle" href="#" id="DIV.update-toggle" onclick="return toggle('DIV.update');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#update">update</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
925
 
</div><div id="DIV.update-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.update-expanded"><a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
926
 
<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"><tt class="py-docstring">        dictionary like updating of the tag attributes</tt> </tt>
927
 
<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
928
 
<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line"> </tt>
929
 
<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-89', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
930
 
<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
931
 
<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
932
 
</div><a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line"> </tt>
933
 
<a name="DIV.append"></a><div id="DIV.append-def"><a name="L584"></a><tt class="py-lineno"> 584</tt> <a class="py-toggle" href="#" id="DIV.append-toggle" onclick="return toggle('DIV.append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#append">append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
934
 
</div><div id="DIV.append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.append-expanded"><a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
935
 
<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line"><tt class="py-docstring">        list style appending of components</tt> </tt>
936
 
<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
937
 
<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=DIV()</tt> </tt>
938
 
<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.append(SPAN('x'))</tt> </tt>
939
 
<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
940
 
<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;span&gt;x&lt;/span&gt;&lt;/div&gt;</tt> </tt>
941
 
<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
942
 
<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-90', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
943
 
<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="web2py.gluon.html.DIV.append
 
943
<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
944
<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
945
<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name" targets="Method web2py.gluon.html.DIV._setnode()=web2py.gluon.html.DIV-class.html#_setnode"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-88', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
946
</div><a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"> </tt>
 
947
<a name="DIV.update"></a><div id="DIV.update-def"><a name="L592"></a><tt class="py-lineno"> 592</tt> <a class="py-toggle" href="#" id="DIV.update-toggle" onclick="return toggle('DIV.update');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#update">update</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
948
</div><div id="DIV.update-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.update-expanded"><a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
949
<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line"><tt class="py-docstring">        dictionary like updating of the tag attributes</tt> </tt>
 
950
<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
951
<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line"> </tt>
 
952
<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
953
<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
954
<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
 
955
</div><a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line"> </tt>
 
956
<a name="DIV.append"></a><div id="DIV.append-def"><a name="L601"></a><tt class="py-lineno"> 601</tt> <a class="py-toggle" href="#" id="DIV.append-toggle" onclick="return toggle('DIV.append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#append">append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
957
</div><div id="DIV.append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.append-expanded"><a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
958
<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line"><tt class="py-docstring">        list style appending of components</tt> </tt>
 
959
<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
960
<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=DIV()</tt> </tt>
 
961
<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.append(SPAN('x'))</tt> </tt>
 
962
<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
 
963
<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;span&gt;x&lt;/span&gt;&lt;/div&gt;</tt> </tt>
 
964
<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
965
<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-89', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
966
<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">        <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="web2py.gluon.html.DIV.append
944
967
web2py.gluon.template.BlockNode.append
945
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-91', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
946
 
<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="web2py.gluon.html.DIV._fixup
 
968
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-90', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
969
<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="web2py.gluon.html.DIV._fixup
947
970
web2py.gluon.html.OPTGROUP._fixup
948
971
web2py.gluon.html.OPTION._fixup
949
972
web2py.gluon.html.SELECT._fixup
952
975
web2py.gluon.html.TFOOT._fixup
953
976
web2py.gluon.html.THEAD._fixup
954
977
web2py.gluon.html.TR._fixup
955
 
web2py.gluon.html.UL._fixup" class="py-name" href="#" onclick="return doclink('link-92', '_fixup', 'link-86');">_fixup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
956
 
<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
957
 
</div><a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line"> </tt>
958
 
<a name="DIV.insert"></a><div id="DIV.insert-def"><a name="L598"></a><tt class="py-lineno"> 598</tt> <a class="py-toggle" href="#" id="DIV.insert-toggle" onclick="return toggle('DIV.insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#insert">insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
959
 
</div><div id="DIV.insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.insert-expanded"><a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
960
 
<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line"><tt class="py-docstring">        list style inserting of components</tt> </tt>
961
 
<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
962
 
<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=DIV()</tt> </tt>
963
 
<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.insert(0,SPAN('x'))</tt> </tt>
964
 
<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
965
 
<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;span&gt;x&lt;/span&gt;&lt;/div&gt;</tt> </tt>
966
 
<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
967
 
<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-93', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
968
 
<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">        <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-94" 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
 
978
web2py.gluon.html.UL._fixup" class="py-name" href="#" onclick="return doclink('link-91', '_fixup', 'link-86');">_fixup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
979
<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
 
980
</div><a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line"> </tt>
 
981
<a name="DIV.insert"></a><div id="DIV.insert-def"><a name="L615"></a><tt class="py-lineno"> 615</tt> <a class="py-toggle" href="#" id="DIV.insert-toggle" onclick="return toggle('DIV.insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#insert">insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
982
</div><div id="DIV.insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.insert-expanded"><a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
983
<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line"><tt class="py-docstring">        list style inserting of components</tt> </tt>
 
984
<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
985
<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=DIV()</tt> </tt>
 
986
<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.insert(0,SPAN('x'))</tt> </tt>
 
987
<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
 
988
<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;span&gt;x&lt;/span&gt;&lt;/div&gt;</tt> </tt>
 
989
<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
990
<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-92', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
991
<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-93" 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
969
992
web2py.gluon.dal.CouchDBAdapter.insert
970
993
web2py.gluon.dal.GoogleDatastoreAdapter.insert
971
994
web2py.gluon.dal.MongoDBAdapter.insert
972
995
web2py.gluon.dal.Table.insert
973
996
web2py.gluon.html.DIV.insert
974
 
web2py.gluon.template.Content.insert" class="py-name" href="#" onclick="return doclink('link-94', 'insert', 'link-94');">insert</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
975
 
<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="web2py.gluon.html.DIV._fixup
 
997
web2py.gluon.template.Content.insert" class="py-name" href="#" onclick="return doclink('link-93', 'insert', 'link-93');">insert</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
998
<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="web2py.gluon.html.DIV._fixup
976
999
web2py.gluon.html.OPTGROUP._fixup
977
1000
web2py.gluon.html.OPTION._fixup
978
1001
web2py.gluon.html.SELECT._fixup
981
1004
web2py.gluon.html.TFOOT._fixup
982
1005
web2py.gluon.html.THEAD._fixup
983
1006
web2py.gluon.html.TR._fixup
984
 
web2py.gluon.html.UL._fixup" class="py-name" href="#" onclick="return doclink('link-95', '_fixup', 'link-86');">_fixup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
985
 
<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
986
 
</div><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line"> </tt>
987
 
<a name="DIV.__getitem__"></a><div id="DIV.__getitem__-def"><a name="L612"></a><tt class="py-lineno"> 612</tt> <a class="py-toggle" href="#" id="DIV.__getitem__-toggle" onclick="return toggle('DIV.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
988
 
</div><div id="DIV.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__getitem__-expanded"><a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
989
 
<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line"><tt class="py-docstring">        gets attribute with name 'i' or component #i.</tt> </tt>
990
 
<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line"><tt class="py-docstring">        If attribute 'i' is not found returns None</tt> </tt>
991
 
<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
992
 
<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line"><tt class="py-docstring">        :param i: index</tt> </tt>
993
 
<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line"><tt class="py-docstring">           if i is a string: the name of the attribute</tt> </tt>
994
 
<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line"><tt class="py-docstring">           otherwise references to number of the component</tt> </tt>
995
 
<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
996
 
<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"> </tt>
997
 
<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
998
 
<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
999
 
<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
1000
 
<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
1001
 
<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
1002
 
<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1003
 
<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
1004
 
</div><a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line"> </tt>
1005
 
<a name="DIV.__setitem__"></a><div id="DIV.__setitem__-def"><a name="L630"></a><tt class="py-lineno"> 630</tt> <a class="py-toggle" href="#" id="DIV.__setitem__-toggle" onclick="return toggle('DIV.__setitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1006
 
</div><div id="DIV.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__setitem__-expanded"><a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1007
 
<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">        sets attribute with name 'i' or component #i.</tt> </tt>
 
1007
web2py.gluon.html.UL._fixup" class="py-name" href="#" onclick="return doclink('link-94', '_fixup', 'link-86');">_fixup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1008
<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
 
1009
</div><a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line"> </tt>
 
1010
<a name="DIV.__getitem__"></a><div id="DIV.__getitem__-def"><a name="L629"></a><tt class="py-lineno"> 629</tt> <a class="py-toggle" href="#" id="DIV.__getitem__-toggle" onclick="return toggle('DIV.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1011
</div><div id="DIV.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__getitem__-expanded"><a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1012
<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"><tt class="py-docstring">        gets attribute with name 'i' or component #i.</tt> </tt>
 
1013
<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">        If attribute 'i' is not found returns None</tt> </tt>
1008
1014
<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1009
1015
<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"><tt class="py-docstring">        :param i: index</tt> </tt>
1010
1016
<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line"><tt class="py-docstring">           if i is a string: the name of the attribute</tt> </tt>
1011
1017
<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line"><tt class="py-docstring">           otherwise references to number of the component</tt> </tt>
1012
 
<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"><tt class="py-docstring">        :param value: the new value</tt> </tt>
1013
 
<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1014
 
<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-96', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
1015
 
<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1016
 
<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
1017
 
<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1018
 
<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
1019
 
</div><a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"> </tt>
1020
 
<a name="DIV.__delitem__"></a><div id="DIV.__delitem__-def"><a name="L645"></a><tt class="py-lineno"> 645</tt> <a class="py-toggle" href="#" id="DIV.__delitem__-toggle" onclick="return toggle('DIV.__delitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__delitem__">__delitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1021
 
</div><div id="DIV.__delitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__delitem__-expanded"><a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1022
 
<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"><tt class="py-docstring">        deletes attribute with name 'i' or component #i.</tt> </tt>
1023
 
<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1024
 
<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"><tt class="py-docstring">        :param i: index</tt> </tt>
1025
 
<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"><tt class="py-docstring">           if i is a string: the name of the attribute</tt> </tt>
1026
 
<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"><tt class="py-docstring">           otherwise references to number of the component</tt> </tt>
1027
 
<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1028
 
<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"> </tt>
1029
 
<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1030
 
<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
1031
 
<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1032
 
<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
1033
 
</div><a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"> </tt>
1034
 
<a name="DIV.__len__"></a><div id="DIV.__len__-def"><a name="L659"></a><tt class="py-lineno"> 659</tt> <a class="py-toggle" href="#" id="DIV.__len__-toggle" onclick="return toggle('DIV.__len__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1035
 
</div><div id="DIV.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__len__-expanded"><a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1036
 
<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"><tt class="py-docstring">        returns the number of included components</tt> </tt>
1037
 
<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1038
 
<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-97" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-97', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
1039
 
</div><a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line"> </tt>
1040
 
<a name="DIV.__nonzero__"></a><div id="DIV.__nonzero__-def"><a name="L665"></a><tt class="py-lineno"> 665</tt> <a class="py-toggle" href="#" id="DIV.__nonzero__-toggle" onclick="return toggle('DIV.__nonzero__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__nonzero__">__nonzero__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1041
 
</div><div id="DIV.__nonzero__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__nonzero__-expanded"><a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1042
 
<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"><tt class="py-docstring">        always return True</tt> </tt>
1043
 
<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1044
 
<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
1045
 
</div><a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line"> </tt>
1046
 
<a name="DIV._fixup"></a><div id="DIV._fixup-def"><a name="L671"></a><tt class="py-lineno"> 671</tt> <a class="py-toggle" href="#" id="DIV._fixup-toggle" onclick="return toggle('DIV._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1047
 
</div><div id="DIV._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._fixup-expanded"><a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1048
 
<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line"><tt class="py-docstring">        Handling of provided components.</tt> </tt>
1049
 
<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1050
 
<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"><tt class="py-docstring">        Nothing to fixup yet. May be overridden by subclasses,</tt> </tt>
1051
 
<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"><tt class="py-docstring">        eg for wrapping some components in another component or blocking them.</tt> </tt>
1052
 
<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1053
 
<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
1054
 
</div><a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"> </tt>
1055
 
<a name="DIV._wrap_components"></a><div id="DIV._wrap_components-def"><a name="L680"></a><tt class="py-lineno"> 680</tt> <a class="py-toggle" href="#" id="DIV._wrap_components-toggle" onclick="return toggle('DIV._wrap_components');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_wrap_components">_wrap_components</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">allowed_parents</tt><tt class="py-op">,</tt> </tt>
1056
 
<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">                         <tt class="py-param">wrap_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
1057
 
<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">                         <tt class="py-param">wrap_lambda</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1058
 
</div><div id="DIV._wrap_components-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._wrap_components-expanded"><a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1059
 
<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"><tt class="py-docstring">        helper for _fixup. Checks if a component is in allowed_parents,</tt> </tt>
1060
 
<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"><tt class="py-docstring">        otherwise wraps it in wrap_parent</tt> </tt>
1061
 
<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1062
 
<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"><tt class="py-docstring">        :param allowed_parents: (tuple) classes that the component should be an</tt> </tt>
1063
 
<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"><tt class="py-docstring">            instance of</tt> </tt>
1064
 
<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"><tt class="py-docstring">        :param wrap_parent: the class to wrap the component in, if needed</tt> </tt>
1065
 
<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"><tt class="py-docstring">        :param wrap_lambda: lambda to use for wrapping, if needed</tt> </tt>
 
1018
<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1019
<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"> </tt>
 
1020
<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1021
<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
1022
<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
 
1023
<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
 
1024
<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
1025
<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1026
<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
 
1027
</div><a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line"> </tt>
 
1028
<a name="DIV.__setitem__"></a><div id="DIV.__setitem__-def"><a name="L647"></a><tt class="py-lineno"> 647</tt> <a class="py-toggle" href="#" id="DIV.__setitem__-toggle" onclick="return toggle('DIV.__setitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1029
</div><div id="DIV.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__setitem__-expanded"><a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1030
<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"><tt class="py-docstring">        sets attribute with name 'i' or component #i.</tt> </tt>
 
1031
<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1032
<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"><tt class="py-docstring">        :param i: index</tt> </tt>
 
1033
<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"><tt class="py-docstring">           if i is a string: the name of the attribute</tt> </tt>
 
1034
<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"><tt class="py-docstring">           otherwise references to number of the component</tt> </tt>
 
1035
<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line"><tt class="py-docstring">        :param value: the new value</tt> </tt>
 
1036
<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1037
<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="web2py.gluon.html.DIV._setnode" class="py-name" href="#" onclick="return doclink('link-95', '_setnode', 'link-88');">_setnode</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
1038
<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1039
<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
1040
<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1041
<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
1042
</div><a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"> </tt>
 
1043
<a name="DIV.__delitem__"></a><div id="DIV.__delitem__-def"><a name="L662"></a><tt class="py-lineno"> 662</tt> <a class="py-toggle" href="#" id="DIV.__delitem__-toggle" onclick="return toggle('DIV.__delitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__delitem__">__delitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1044
</div><div id="DIV.__delitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__delitem__-expanded"><a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1045
<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line"><tt class="py-docstring">        deletes attribute with name 'i' or component #i.</tt> </tt>
 
1046
<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1047
<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"><tt class="py-docstring">        :param i: index</tt> </tt>
 
1048
<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"><tt class="py-docstring">           if i is a string: the name of the attribute</tt> </tt>
 
1049
<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"><tt class="py-docstring">           otherwise references to number of the component</tt> </tt>
 
1050
<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1051
<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line"> </tt>
 
1052
<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1053
<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
 
1054
<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1055
<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
 
1056
</div><a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"> </tt>
 
1057
<a name="DIV.__len__"></a><div id="DIV.__len__-def"><a name="L676"></a><tt class="py-lineno"> 676</tt> <a class="py-toggle" href="#" id="DIV.__len__-toggle" onclick="return toggle('DIV.__len__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1058
</div><div id="DIV.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__len__-expanded"><a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1059
<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line"><tt class="py-docstring">        returns the number of included components</tt> </tt>
 
1060
<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1061
<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-96" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-96', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
 
1062
</div><a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"> </tt>
 
1063
<a name="DIV.__nonzero__"></a><div id="DIV.__nonzero__-def"><a name="L682"></a><tt class="py-lineno"> 682</tt> <a class="py-toggle" href="#" id="DIV.__nonzero__-toggle" onclick="return toggle('DIV.__nonzero__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__nonzero__">__nonzero__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1064
</div><div id="DIV.__nonzero__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__nonzero__-expanded"><a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1065
<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"><tt class="py-docstring">        always return True</tt> </tt>
 
1066
<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1067
<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
1068
</div><a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"> </tt>
 
1069
<a name="DIV._fixup"></a><div id="DIV._fixup-def"><a name="L688"></a><tt class="py-lineno"> 688</tt> <a class="py-toggle" href="#" id="DIV._fixup-toggle" onclick="return toggle('DIV._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1070
</div><div id="DIV._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._fixup-expanded"><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1071
<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"><tt class="py-docstring">        Handling of provided components.</tt> </tt>
1066
1072
<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1067
 
<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1068
 
<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
1069
 
<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
1070
 
<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">allowed_parents</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1071
 
<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
1072
 
<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">wrap_lambda</tt><tt class="py-op">:</tt> </tt>
1073
 
<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">                <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">wrap_lambda</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
1074
 
<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1075
 
<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">                <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">wrap_parent</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
1076
 
<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt id="link-98" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.DIV()=web2py.gluon.dal.BaseAdapter-class.html#DIV,Method web2py.gluon.dal.NoSQLAdapter.DIV()=web2py.gluon.dal.NoSQLAdapter-class.html#DIV,Class web2py.gluon.html.DIV=web2py.gluon.html.DIV-class.html"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
1073
<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"><tt class="py-docstring">        Nothing to fixup yet. May be overridden by subclasses,</tt> </tt>
 
1074
<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"><tt class="py-docstring">        eg for wrapping some components in another component or blocking them.</tt> </tt>
 
1075
<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1076
<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
 
1077
</div><a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line"> </tt>
 
1078
<a name="DIV._wrap_components"></a><div id="DIV._wrap_components-def"><a name="L697"></a><tt class="py-lineno"> 697</tt> <a class="py-toggle" href="#" id="DIV._wrap_components-toggle" onclick="return toggle('DIV._wrap_components');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_wrap_components">_wrap_components</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">allowed_parents</tt><tt class="py-op">,</tt> </tt>
 
1079
<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">                         <tt class="py-param">wrap_parent</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
1080
<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">                         <tt class="py-param">wrap_lambda</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1081
</div><div id="DIV._wrap_components-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._wrap_components-expanded"><a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1082
<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line"><tt class="py-docstring">        helper for _fixup. Checks if a component is in allowed_parents,</tt> </tt>
 
1083
<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line"><tt class="py-docstring">        otherwise wraps it in wrap_parent</tt> </tt>
 
1084
<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1085
<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line"><tt class="py-docstring">        :param allowed_parents: (tuple) classes that the component should be an</tt> </tt>
 
1086
<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line"><tt class="py-docstring">            instance of</tt> </tt>
 
1087
<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line"><tt class="py-docstring">        :param wrap_parent: the class to wrap the component in, if needed</tt> </tt>
 
1088
<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line"><tt class="py-docstring">        :param wrap_lambda: lambda to use for wrapping, if needed</tt> </tt>
 
1089
<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1090
<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1091
<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
1092
<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
1093
<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">allowed_parents</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1094
<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
 
1095
<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">wrap_lambda</tt><tt class="py-op">:</tt> </tt>
 
1096
<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">                <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">wrap_lambda</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
1097
<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1098
<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">                <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">wrap_parent</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
1099
<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt id="link-97" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.DIV()=web2py.gluon.dal.BaseAdapter-class.html#DIV,Method web2py.gluon.dal.NoSQLAdapter.DIV()=web2py.gluon.dal.NoSQLAdapter-class.html#DIV,Class web2py.gluon.html.DIV=web2py.gluon.html.DIV-class.html"><a title="web2py.gluon.dal.BaseAdapter.DIV
1077
1100
web2py.gluon.dal.NoSQLAdapter.DIV
1078
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-98', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1079
 
<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
1080
 
<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">            <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="web2py.gluon.html.DIV.append
 
1101
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-97', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1102
<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
 
1103
<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">            <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="web2py.gluon.html.DIV.append
1081
1104
web2py.gluon.template.BlockNode.append
1082
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-99', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
1083
 
<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
1084
 
</div><a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line"> </tt>
1085
 
<a name="DIV._postprocessing"></a><div id="DIV._postprocessing-def"><a name="L706"></a><tt class="py-lineno"> 706</tt> <a class="py-toggle" href="#" id="DIV._postprocessing-toggle" onclick="return toggle('DIV._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1086
 
</div><div id="DIV._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._postprocessing-expanded"><a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1087
 
<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line"><tt class="py-docstring">        Handling of attributes (normally the ones not prefixed with '_').</tt> </tt>
1088
 
<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1089
 
<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line"><tt class="py-docstring">        Nothing to postprocess yet. May be overridden by subclasses</tt> </tt>
1090
 
<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1091
 
<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
1092
 
</div><a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line"> </tt>
1093
 
<a name="DIV._traverse"></a><div id="DIV._traverse-def"><a name="L714"></a><tt class="py-lineno"> 714</tt> <a class="py-toggle" href="#" id="DIV._traverse-toggle" onclick="return toggle('DIV._traverse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_traverse">_traverse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">,</tt> <tt class="py-param">hideerror</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1094
 
</div><div id="DIV._traverse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._traverse-expanded"><a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt class="py-comment"># TODO: docstring</tt> </tt>
1095
 
<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
1096
 
<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
1097
 
<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'_traverse'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method web2py.gluon.html.DIV._traverse()=web2py.gluon.html.DIV-class.html#_traverse"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-100', '_traverse', 'link-100');">_traverse</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1098
 
<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> </tt>
1099
 
<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> </tt>
1100
 
<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> </tt>
1101
 
<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> </tt>
1102
 
<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> </tt>
1103
 
<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> </tt>
1104
 
<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'hideerror'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">hideerror</tt> </tt>
1105
 
<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">                <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-101', '_traverse', 'link-100');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">newstatus</tt> </tt>
1106
 
<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line"> </tt>
1107
 
<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-comment"># for input, textarea, select, option</tt> </tt>
1108
 
<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># deal with 'value' and 'validation'</tt> </tt>
1109
 
<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
1110
 
<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">        <tt id="link-102" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-102', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_name'</tt><tt class="py-op">]</tt> </tt>
1111
 
<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">newstatus</tt><tt class="py-op">:</tt> </tt>
1112
 
<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">            <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Method web2py.gluon.dal.Table._validate()=web2py.gluon.dal.Table-class.html#_validate,Method web2py.gluon.html.DIV._validate()=web2py.gluon.html.DIV-class.html#_validate,Method web2py.gluon.html.INPUT._validate()=web2py.gluon.html.INPUT-class.html#_validate,Method web2py.gluon.tools.Recaptcha._validate()=web2py.gluon.tools.Recaptcha-class.html#_validate"><a title="web2py.gluon.dal.Table._validate
 
1105
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-98', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
1106
<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
 
1107
</div><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"> </tt>
 
1108
<a name="DIV._postprocessing"></a><div id="DIV._postprocessing-def"><a name="L723"></a><tt class="py-lineno"> 723</tt> <a class="py-toggle" href="#" id="DIV._postprocessing-toggle" onclick="return toggle('DIV._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1109
</div><div id="DIV._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._postprocessing-expanded"><a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1110
<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line"><tt class="py-docstring">        Handling of attributes (normally the ones not prefixed with '_').</tt> </tt>
 
1111
<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1112
<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line"><tt class="py-docstring">        Nothing to postprocess yet. May be overridden by subclasses</tt> </tt>
 
1113
<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1114
<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
 
1115
</div><a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
 
1116
<a name="DIV._traverse"></a><div id="DIV._traverse-def"><a name="L731"></a><tt class="py-lineno"> 731</tt> <a class="py-toggle" href="#" id="DIV._traverse-toggle" onclick="return toggle('DIV._traverse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_traverse">_traverse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">,</tt> <tt class="py-param">hideerror</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1117
</div><div id="DIV._traverse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._traverse-expanded"><a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt class="py-comment"># TODO: docstring</tt> </tt>
 
1118
<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
 
1119
<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
1120
<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'_traverse'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method web2py.gluon.html.DIV._traverse()=web2py.gluon.html.DIV-class.html#_traverse"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-99', '_traverse', 'link-99');">_traverse</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1121
<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> </tt>
 
1122
<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> </tt>
 
1123
<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> </tt>
 
1124
<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> </tt>
 
1125
<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> </tt>
 
1126
<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> </tt>
 
1127
<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'hideerror'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">hideerror</tt> </tt>
 
1128
<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">                <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-100', '_traverse', 'link-99');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">newstatus</tt> </tt>
 
1129
<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"> </tt>
 
1130
<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-comment"># for input, textarea, select, option</tt> </tt>
 
1131
<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># deal with 'value' and 'validation'</tt> </tt>
 
1132
<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
1133
<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">        <tt id="link-101" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-101', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_name'</tt><tt class="py-op">]</tt> </tt>
 
1134
<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">newstatus</tt><tt class="py-op">:</tt> </tt>
 
1135
<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">            <tt class="py-name">newstatus</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Method web2py.gluon.dal.Table._validate()=web2py.gluon.dal.Table-class.html#_validate,Method web2py.gluon.html.DIV._validate()=web2py.gluon.html.DIV-class.html#_validate,Method web2py.gluon.html.INPUT._validate()=web2py.gluon.html.INPUT-class.html#_validate,Method web2py.gluon.tools.Recaptcha._validate()=web2py.gluon.tools.Recaptcha-class.html#_validate"><a title="web2py.gluon.dal.Table._validate
1113
1136
web2py.gluon.html.DIV._validate
1114
1137
web2py.gluon.html.INPUT._validate
1115
 
web2py.gluon.tools.Recaptcha._validate" class="py-name" href="#" onclick="return doclink('link-103', '_validate', 'link-103');">_validate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1116
 
<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
 
1138
web2py.gluon.tools.Recaptcha._validate" class="py-name" href="#" onclick="return doclink('link-102', '_validate', 'link-102');">_validate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1139
<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
 
1140
web2py.gluon.html.FORM._postprocessing
 
1141
web2py.gluon.html.INPUT._postprocessing
 
1142
web2py.gluon.html.SELECT._postprocessing
 
1143
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-103', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1144
<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-string">'old_value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
1145
<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> </tt>
 
1146
<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
1117
1147
web2py.gluon.html.FORM._postprocessing
1118
1148
web2py.gluon.html.INPUT._postprocessing
1119
1149
web2py.gluon.html.SELECT._postprocessing
1120
1150
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-104', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1121
 
<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-string">'old_value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
1122
 
<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> </tt>
1123
 
<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
1124
 
web2py.gluon.html.FORM._postprocessing
1125
 
web2py.gluon.html.INPUT._postprocessing
1126
 
web2py.gluon.html.SELECT._postprocessing
1127
 
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-105', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1128
 
<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-106" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-106', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">and</tt> <tt id="link-107" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-107', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">:</tt> </tt>
1129
 
<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-108" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-108', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> </tt>
1130
 
<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
1131
 
web2py.gluon.html.FORM._postprocessing
1132
 
web2py.gluon.html.INPUT._postprocessing
1133
 
web2py.gluon.html.SELECT._postprocessing
1134
 
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-109', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1135
 
<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-110" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-110', 'name', 'link-74');">name</a></tt><tt class="py-op">:</tt> </tt>
1136
 
<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt><tt class="py-op">[</tt><tt id="link-111" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-111', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
1137
 
<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">newstatus</tt> </tt>
1138
 
</div><a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"> </tt>
1139
 
<a name="DIV._validate"></a><div id="DIV._validate-def"><a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="DIV._validate-toggle" onclick="return toggle('DIV._validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_validate">_validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1140
 
</div><div id="DIV._validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._validate-expanded"><a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1141
 
<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-docstring">        nothing to validate yet. May be overridden by subclasses</tt> </tt>
1142
 
<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1143
 
<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
1144
 
</div><a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"> </tt>
1145
 
<a name="DIV._setnode"></a><div id="DIV._setnode-def"><a name="L751"></a><tt class="py-lineno"> 751</tt> <a class="py-toggle" href="#" id="DIV._setnode-toggle" onclick="return toggle('DIV._setnode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_setnode">_setnode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1146
 
</div><div id="DIV._setnode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._setnode-expanded"><a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt id="link-112" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
1151
<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-105" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-105', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">and</tt> <tt id="link-106" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-106', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">:</tt> </tt>
 
1152
<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-107" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-107', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> </tt>
 
1153
<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="web2py.gluon.html.DIV._postprocessing
 
1154
web2py.gluon.html.FORM._postprocessing
 
1155
web2py.gluon.html.INPUT._postprocessing
 
1156
web2py.gluon.html.SELECT._postprocessing
 
1157
web2py.gluon.html.TEXTAREA._postprocessing" class="py-name" href="#" onclick="return doclink('link-108', '_postprocessing', 'link-87');">_postprocessing</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1158
<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-109" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-109', 'name', 'link-74');">name</a></tt><tt class="py-op">:</tt> </tt>
 
1159
<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt><tt class="py-op">[</tt><tt id="link-110" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-110', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
 
1160
<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">newstatus</tt> </tt>
 
1161
</div><a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line"> </tt>
 
1162
<a name="DIV._validate"></a><div id="DIV._validate-def"><a name="L762"></a><tt class="py-lineno"> 762</tt> <a class="py-toggle" href="#" id="DIV._validate-toggle" onclick="return toggle('DIV._validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_validate">_validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1163
</div><div id="DIV._validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._validate-expanded"><a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1164
<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line"><tt class="py-docstring">        nothing to validate yet. May be overridden by subclasses</tt> </tt>
 
1165
<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1166
<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
1167
</div><a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line"> </tt>
 
1168
<a name="DIV._setnode"></a><div id="DIV._setnode-def"><a name="L768"></a><tt class="py-lineno"> 768</tt> <a class="py-toggle" href="#" id="DIV._setnode-toggle" onclick="return toggle('DIV._setnode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_setnode">_setnode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1169
</div><div id="DIV._setnode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._setnode-expanded"><a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt id="link-111" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
1147
1170
web2py.gluon.dal.NoSQLAdapter.DIV
1148
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-112', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1149
 
<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">            <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
1150
 
</div><a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"> </tt>
1151
 
<a name="DIV._xml"></a><div id="DIV._xml-def"><a name="L755"></a><tt class="py-lineno"> 755</tt> <a class="py-toggle" href="#" id="DIV._xml-toggle" onclick="return toggle('DIV._xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_xml">_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1152
 
</div><div id="DIV._xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._xml-expanded"><a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1153
 
<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line"><tt class="py-docstring">        helper for xml generation. Returns separately:</tt> </tt>
1154
 
<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"><tt class="py-docstring">        - the component attributes</tt> </tt>
1155
 
<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"><tt class="py-docstring">        - the generated xml of the inner components</tt> </tt>
1156
 
<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1157
 
<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line"><tt class="py-docstring">        Component attributes start with an underscore ('_') and</tt> </tt>
1158
 
<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line"><tt class="py-docstring">        do not have a False or None value. The underscore is removed.</tt> </tt>
1159
 
<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"><tt class="py-docstring">        A value of True is replaced with the attribute name.</tt> </tt>
1160
 
<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1161
 
<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"><tt class="py-docstring">        :returns: tuple: (attributes, components)</tt> </tt>
1162
 
<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1163
 
<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line"> </tt>
1164
 
<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">        <tt class="py-comment"># get the attributes for this component</tt> </tt>
1165
 
<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># (they start with '_', others may have special meanings)</tt> </tt>
1166
 
<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">fa</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
1167
 
<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</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">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1168
 
<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
1169
 
<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">key</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>
1170
 
<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
1171
 
<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">            <tt id="link-113" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-113', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
1172
 
<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
1173
 
<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-114', 'name', 'link-74');">name</a></tt> </tt>
1174
 
<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt> <tt class="py-keyword">or</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
1175
 
<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
1176
 
<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">            <tt class="py-name">fa</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-115" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-115', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt id="link-116" class="py-name" targets="Function web2py.gluon.html.xmlescape()=web2py.gluon.html-module.html#xmlescape"><a title="web2py.gluon.html.xmlescape" class="py-name" href="#" onclick="return doclink('link-116', 'xmlescape', 'link-116');">xmlescape</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
1177
 
<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"> </tt>
1178
 
<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt class="py-comment"># get the xml for the inner components</tt> </tt>
1179
 
<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-117', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-118" class="py-name"><a title="web2py.gluon.html.xmlescape" class="py-name" href="#" onclick="return doclink('link-118', 'xmlescape', 'link-116');">xmlescape</a></tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
1180
 
<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">                     <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
1181
 
<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line"> </tt>
1182
 
<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> </tt>
1183
 
</div><a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line"> </tt>
1184
 
<a name="DIV.xml"></a><div id="DIV.xml-def"><a name="L788"></a><tt class="py-lineno"> 788</tt> <a class="py-toggle" href="#" id="DIV.xml-toggle" onclick="return toggle('DIV.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1185
 
</div><div id="DIV.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.xml-expanded"><a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1186
 
<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line"><tt class="py-docstring">        generates the xml for this component.</tt> </tt>
1187
 
<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1188
 
<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line"> </tt>
1189
 
<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method web2py.gluon.html.DIV._xml()=web2py.gluon.html.DIV-class.html#_xml"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-119', '_xml', 'link-119');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1190
 
<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line"> </tt>
1191
 
<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="web2py.gluon.html.A.tag
1192
 
web2py.gluon.html.B.tag
1193
 
web2py.gluon.html.BEAUTIFY.tag
1194
 
web2py.gluon.html.BODY.tag
1195
 
web2py.gluon.html.BR.tag
1196
 
web2py.gluon.html.BUTTON.tag
1197
 
web2py.gluon.html.CAT.tag
1198
 
web2py.gluon.html.CENTER.tag
1199
 
web2py.gluon.html.COL.tag
1200
 
web2py.gluon.html.COLGROUP.tag
1201
 
web2py.gluon.html.DIV.tag
1202
 
web2py.gluon.html.EM.tag
1203
 
web2py.gluon.html.EMBED.tag
1204
 
web2py.gluon.html.FIELDSET.tag
1205
 
web2py.gluon.html.FORM.tag
1206
 
web2py.gluon.html.H1.tag
1207
 
web2py.gluon.html.H2.tag
1208
 
web2py.gluon.html.H3.tag
1209
 
web2py.gluon.html.H4.tag
1210
 
web2py.gluon.html.H5.tag
1211
 
web2py.gluon.html.H6.tag
1212
 
web2py.gluon.html.HEAD.tag
1213
 
web2py.gluon.html.HR.tag
1214
 
web2py.gluon.html.HTML.tag
1215
 
web2py.gluon.html.I.tag
1216
 
web2py.gluon.html.IFRAME.tag
1217
 
web2py.gluon.html.IMG.tag
1218
 
web2py.gluon.html.INPUT.tag
1219
 
web2py.gluon.html.LABEL.tag
1220
 
web2py.gluon.html.LEGEND.tag
1221
 
web2py.gluon.html.LI.tag
1222
 
web2py.gluon.html.LINK.tag
1223
 
web2py.gluon.html.MENU.tag
1224
 
web2py.gluon.html.META.tag
1225
 
web2py.gluon.html.OBJECT.tag
1226
 
web2py.gluon.html.OL.tag
1227
 
web2py.gluon.html.OPTGROUP.tag
1228
 
web2py.gluon.html.OPTION.tag
1229
 
web2py.gluon.html.P.tag
1230
 
web2py.gluon.html.PRE.tag
1231
 
web2py.gluon.html.SCRIPT.tag
1232
 
web2py.gluon.html.SELECT.tag
1233
 
web2py.gluon.html.SPAN.tag
1234
 
web2py.gluon.html.STYLE.tag
1235
 
web2py.gluon.html.TABLE.tag
1236
 
web2py.gluon.html.TBODY.tag
1237
 
web2py.gluon.html.TD.tag
1238
 
web2py.gluon.html.TEXTAREA.tag
1239
 
web2py.gluon.html.TFOOT.tag
1240
 
web2py.gluon.html.TH.tag
1241
 
web2py.gluon.html.THEAD.tag
1242
 
web2py.gluon.html.TITLE.tag
1243
 
web2py.gluon.html.TR.tag
1244
 
web2py.gluon.html.TT.tag
1245
 
web2py.gluon.html.UL.tag
1246
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-120', 'tag', 'link-82');">tag</a></tt><tt class="py-op">:</tt> </tt>
1247
 
<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">co</tt> </tt>
1248
 
<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
1249
 
<a name="L798"></a><tt class="py-lineno"> 798</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-121" class="py-name"><a title="web2py.gluon.html.A.tag
1250
 
web2py.gluon.html.B.tag
1251
 
web2py.gluon.html.BEAUTIFY.tag
1252
 
web2py.gluon.html.BODY.tag
1253
 
web2py.gluon.html.BR.tag
1254
 
web2py.gluon.html.BUTTON.tag
1255
 
web2py.gluon.html.CAT.tag
1256
 
web2py.gluon.html.CENTER.tag
1257
 
web2py.gluon.html.COL.tag
1258
 
web2py.gluon.html.COLGROUP.tag
1259
 
web2py.gluon.html.DIV.tag
1260
 
web2py.gluon.html.EM.tag
1261
 
web2py.gluon.html.EMBED.tag
1262
 
web2py.gluon.html.FIELDSET.tag
1263
 
web2py.gluon.html.FORM.tag
1264
 
web2py.gluon.html.H1.tag
1265
 
web2py.gluon.html.H2.tag
1266
 
web2py.gluon.html.H3.tag
1267
 
web2py.gluon.html.H4.tag
1268
 
web2py.gluon.html.H5.tag
1269
 
web2py.gluon.html.H6.tag
1270
 
web2py.gluon.html.HEAD.tag
1271
 
web2py.gluon.html.HR.tag
1272
 
web2py.gluon.html.HTML.tag
1273
 
web2py.gluon.html.I.tag
1274
 
web2py.gluon.html.IFRAME.tag
1275
 
web2py.gluon.html.IMG.tag
1276
 
web2py.gluon.html.INPUT.tag
1277
 
web2py.gluon.html.LABEL.tag
1278
 
web2py.gluon.html.LEGEND.tag
1279
 
web2py.gluon.html.LI.tag
1280
 
web2py.gluon.html.LINK.tag
1281
 
web2py.gluon.html.MENU.tag
1282
 
web2py.gluon.html.META.tag
1283
 
web2py.gluon.html.OBJECT.tag
1284
 
web2py.gluon.html.OL.tag
1285
 
web2py.gluon.html.OPTGROUP.tag
1286
 
web2py.gluon.html.OPTION.tag
1287
 
web2py.gluon.html.P.tag
1288
 
web2py.gluon.html.PRE.tag
1289
 
web2py.gluon.html.SCRIPT.tag
1290
 
web2py.gluon.html.SELECT.tag
1291
 
web2py.gluon.html.SPAN.tag
1292
 
web2py.gluon.html.STYLE.tag
1293
 
web2py.gluon.html.TABLE.tag
1294
 
web2py.gluon.html.TBODY.tag
1295
 
web2py.gluon.html.TD.tag
1296
 
web2py.gluon.html.TEXTAREA.tag
1297
 
web2py.gluon.html.TFOOT.tag
1298
 
web2py.gluon.html.TH.tag
1299
 
web2py.gluon.html.THEAD.tag
1300
 
web2py.gluon.html.TITLE.tag
1301
 
web2py.gluon.html.TR.tag
1302
 
web2py.gluon.html.TT.tag
1303
 
web2py.gluon.html.UL.tag
1304
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-121', 'tag', 'link-82');">tag</a></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-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
1305
 
<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;tag [attributes] /&gt;</tt> </tt>
1306
 
<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s /&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="web2py.gluon.html.A.tag
1307
 
web2py.gluon.html.B.tag
1308
 
web2py.gluon.html.BEAUTIFY.tag
1309
 
web2py.gluon.html.BODY.tag
1310
 
web2py.gluon.html.BR.tag
1311
 
web2py.gluon.html.BUTTON.tag
1312
 
web2py.gluon.html.CAT.tag
1313
 
web2py.gluon.html.CENTER.tag
1314
 
web2py.gluon.html.COL.tag
1315
 
web2py.gluon.html.COLGROUP.tag
1316
 
web2py.gluon.html.DIV.tag
1317
 
web2py.gluon.html.EM.tag
1318
 
web2py.gluon.html.EMBED.tag
1319
 
web2py.gluon.html.FIELDSET.tag
1320
 
web2py.gluon.html.FORM.tag
1321
 
web2py.gluon.html.H1.tag
1322
 
web2py.gluon.html.H2.tag
1323
 
web2py.gluon.html.H3.tag
1324
 
web2py.gluon.html.H4.tag
1325
 
web2py.gluon.html.H5.tag
1326
 
web2py.gluon.html.H6.tag
1327
 
web2py.gluon.html.HEAD.tag
1328
 
web2py.gluon.html.HR.tag
1329
 
web2py.gluon.html.HTML.tag
1330
 
web2py.gluon.html.I.tag
1331
 
web2py.gluon.html.IFRAME.tag
1332
 
web2py.gluon.html.IMG.tag
1333
 
web2py.gluon.html.INPUT.tag
1334
 
web2py.gluon.html.LABEL.tag
1335
 
web2py.gluon.html.LEGEND.tag
1336
 
web2py.gluon.html.LI.tag
1337
 
web2py.gluon.html.LINK.tag
1338
 
web2py.gluon.html.MENU.tag
1339
 
web2py.gluon.html.META.tag
1340
 
web2py.gluon.html.OBJECT.tag
1341
 
web2py.gluon.html.OL.tag
1342
 
web2py.gluon.html.OPTGROUP.tag
1343
 
web2py.gluon.html.OPTION.tag
1344
 
web2py.gluon.html.P.tag
1345
 
web2py.gluon.html.PRE.tag
1346
 
web2py.gluon.html.SCRIPT.tag
1347
 
web2py.gluon.html.SELECT.tag
1348
 
web2py.gluon.html.SPAN.tag
1349
 
web2py.gluon.html.STYLE.tag
1350
 
web2py.gluon.html.TABLE.tag
1351
 
web2py.gluon.html.TBODY.tag
1352
 
web2py.gluon.html.TD.tag
1353
 
web2py.gluon.html.TEXTAREA.tag
1354
 
web2py.gluon.html.TFOOT.tag
1355
 
web2py.gluon.html.TH.tag
1356
 
web2py.gluon.html.THEAD.tag
1357
 
web2py.gluon.html.TITLE.tag
1358
 
web2py.gluon.html.TR.tag
1359
 
web2py.gluon.html.TT.tag
1360
 
web2py.gluon.html.UL.tag
1361
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-122', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</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-name">fa</tt><tt class="py-op">)</tt> </tt>
1362
 
<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line"> </tt>
1363
 
<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt class="py-comment"># else: &lt;tag [attributes]&gt;  inner components xml &lt;/tag&gt;</tt> </tt>
1364
 
<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="web2py.gluon.html.A.tag
1365
 
web2py.gluon.html.B.tag
1366
 
web2py.gluon.html.BEAUTIFY.tag
1367
 
web2py.gluon.html.BODY.tag
1368
 
web2py.gluon.html.BR.tag
1369
 
web2py.gluon.html.BUTTON.tag
1370
 
web2py.gluon.html.CAT.tag
1371
 
web2py.gluon.html.CENTER.tag
1372
 
web2py.gluon.html.COL.tag
1373
 
web2py.gluon.html.COLGROUP.tag
1374
 
web2py.gluon.html.DIV.tag
1375
 
web2py.gluon.html.EM.tag
1376
 
web2py.gluon.html.EMBED.tag
1377
 
web2py.gluon.html.FIELDSET.tag
1378
 
web2py.gluon.html.FORM.tag
1379
 
web2py.gluon.html.H1.tag
1380
 
web2py.gluon.html.H2.tag
1381
 
web2py.gluon.html.H3.tag
1382
 
web2py.gluon.html.H4.tag
1383
 
web2py.gluon.html.H5.tag
1384
 
web2py.gluon.html.H6.tag
1385
 
web2py.gluon.html.HEAD.tag
1386
 
web2py.gluon.html.HR.tag
1387
 
web2py.gluon.html.HTML.tag
1388
 
web2py.gluon.html.I.tag
1389
 
web2py.gluon.html.IFRAME.tag
1390
 
web2py.gluon.html.IMG.tag
1391
 
web2py.gluon.html.INPUT.tag
1392
 
web2py.gluon.html.LABEL.tag
1393
 
web2py.gluon.html.LEGEND.tag
1394
 
web2py.gluon.html.LI.tag
1395
 
web2py.gluon.html.LINK.tag
1396
 
web2py.gluon.html.MENU.tag
1397
 
web2py.gluon.html.META.tag
1398
 
web2py.gluon.html.OBJECT.tag
1399
 
web2py.gluon.html.OL.tag
1400
 
web2py.gluon.html.OPTGROUP.tag
1401
 
web2py.gluon.html.OPTION.tag
1402
 
web2py.gluon.html.P.tag
1403
 
web2py.gluon.html.PRE.tag
1404
 
web2py.gluon.html.SCRIPT.tag
1405
 
web2py.gluon.html.SELECT.tag
1406
 
web2py.gluon.html.SPAN.tag
1407
 
web2py.gluon.html.STYLE.tag
1408
 
web2py.gluon.html.TABLE.tag
1409
 
web2py.gluon.html.TBODY.tag
1410
 
web2py.gluon.html.TD.tag
1411
 
web2py.gluon.html.TEXTAREA.tag
1412
 
web2py.gluon.html.TFOOT.tag
1413
 
web2py.gluon.html.TH.tag
1414
 
web2py.gluon.html.THEAD.tag
1415
 
web2py.gluon.html.TITLE.tag
1416
 
web2py.gluon.html.TR.tag
1417
 
web2py.gluon.html.TT.tag
1418
 
web2py.gluon.html.UL.tag
1419
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-123', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="web2py.gluon.html.A.tag
1420
 
web2py.gluon.html.B.tag
1421
 
web2py.gluon.html.BEAUTIFY.tag
1422
 
web2py.gluon.html.BODY.tag
1423
 
web2py.gluon.html.BR.tag
1424
 
web2py.gluon.html.BUTTON.tag
1425
 
web2py.gluon.html.CAT.tag
1426
 
web2py.gluon.html.CENTER.tag
1427
 
web2py.gluon.html.COL.tag
1428
 
web2py.gluon.html.COLGROUP.tag
1429
 
web2py.gluon.html.DIV.tag
1430
 
web2py.gluon.html.EM.tag
1431
 
web2py.gluon.html.EMBED.tag
1432
 
web2py.gluon.html.FIELDSET.tag
1433
 
web2py.gluon.html.FORM.tag
1434
 
web2py.gluon.html.H1.tag
1435
 
web2py.gluon.html.H2.tag
1436
 
web2py.gluon.html.H3.tag
1437
 
web2py.gluon.html.H4.tag
1438
 
web2py.gluon.html.H5.tag
1439
 
web2py.gluon.html.H6.tag
1440
 
web2py.gluon.html.HEAD.tag
1441
 
web2py.gluon.html.HR.tag
1442
 
web2py.gluon.html.HTML.tag
1443
 
web2py.gluon.html.I.tag
1444
 
web2py.gluon.html.IFRAME.tag
1445
 
web2py.gluon.html.IMG.tag
1446
 
web2py.gluon.html.INPUT.tag
1447
 
web2py.gluon.html.LABEL.tag
1448
 
web2py.gluon.html.LEGEND.tag
1449
 
web2py.gluon.html.LI.tag
1450
 
web2py.gluon.html.LINK.tag
1451
 
web2py.gluon.html.MENU.tag
1452
 
web2py.gluon.html.META.tag
1453
 
web2py.gluon.html.OBJECT.tag
1454
 
web2py.gluon.html.OL.tag
1455
 
web2py.gluon.html.OPTGROUP.tag
1456
 
web2py.gluon.html.OPTION.tag
1457
 
web2py.gluon.html.P.tag
1458
 
web2py.gluon.html.PRE.tag
1459
 
web2py.gluon.html.SCRIPT.tag
1460
 
web2py.gluon.html.SELECT.tag
1461
 
web2py.gluon.html.SPAN.tag
1462
 
web2py.gluon.html.STYLE.tag
1463
 
web2py.gluon.html.TABLE.tag
1464
 
web2py.gluon.html.TBODY.tag
1465
 
web2py.gluon.html.TD.tag
1466
 
web2py.gluon.html.TEXTAREA.tag
1467
 
web2py.gluon.html.TFOOT.tag
1468
 
web2py.gluon.html.TH.tag
1469
 
web2py.gluon.html.THEAD.tag
1470
 
web2py.gluon.html.TITLE.tag
1471
 
web2py.gluon.html.TR.tag
1472
 
web2py.gluon.html.TT.tag
1473
 
web2py.gluon.html.UL.tag
1474
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-124', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
1171
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-111', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1172
<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">            <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
 
1173
</div><a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"> </tt>
 
1174
<a name="DIV._xml"></a><div id="DIV._xml-def"><a name="L772"></a><tt class="py-lineno"> 772</tt> <a class="py-toggle" href="#" id="DIV._xml-toggle" onclick="return toggle('DIV._xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#_xml">_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1175
</div><div id="DIV._xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV._xml-expanded"><a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1176
<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"><tt class="py-docstring">        helper for xml generation. Returns separately:</tt> </tt>
 
1177
<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"><tt class="py-docstring">        - the component attributes</tt> </tt>
 
1178
<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"><tt class="py-docstring">        - the generated xml of the inner components</tt> </tt>
 
1179
<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1180
<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line"><tt class="py-docstring">        Component attributes start with an underscore ('_') and</tt> </tt>
 
1181
<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"><tt class="py-docstring">        do not have a False or None value. The underscore is removed.</tt> </tt>
 
1182
<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"><tt class="py-docstring">        A value of True is replaced with the attribute name.</tt> </tt>
 
1183
<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1184
<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line"><tt class="py-docstring">        :returns: tuple: (attributes, components)</tt> </tt>
 
1185
<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1186
<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
 
1187
<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt class="py-comment"># get the attributes for this component</tt> </tt>
 
1188
<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># (they start with '_', others may have special meanings)</tt> </tt>
 
1189
<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">fa</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
1190
<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</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">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1191
<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
 
1192
<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">key</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>
 
1193
<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
 
1194
<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">            <tt id="link-112" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-112', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
 
1195
<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
 
1196
<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-113', 'name', 'link-74');">name</a></tt> </tt>
 
1197
<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt> <tt class="py-keyword">or</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
1198
<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
 
1199
<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">            <tt class="py-name">fa</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-114" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-114', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt id="link-115" class="py-name" targets="Function web2py.gluon.html.xmlescape()=web2py.gluon.html-module.html#xmlescape"><a title="web2py.gluon.html.xmlescape" class="py-name" href="#" onclick="return doclink('link-115', 'xmlescape', 'link-115');">xmlescape</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
1200
<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line"> </tt>
 
1201
<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt class="py-comment"># get the xml for the inner components</tt> </tt>
 
1202
<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="web2py.gluon.html.join
 
1203
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-116', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-117" class="py-name"><a title="web2py.gluon.html.xmlescape" class="py-name" href="#" onclick="return doclink('link-117', 'xmlescape', 'link-115');">xmlescape</a></tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
 
1204
<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">                     <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
1205
<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line"> </tt>
 
1206
<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> </tt>
1475
1207
</div><a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line"> </tt>
1476
 
<a name="DIV.__str__"></a><div id="DIV.__str__-def"><a name="L805"></a><tt class="py-lineno"> 805</tt> <a class="py-toggle" href="#" id="DIV.__str__-toggle" onclick="return toggle('DIV.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1477
 
</div><div id="DIV.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__str__-expanded"><a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1478
 
<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line"><tt class="py-docstring">        str(COMPONENT) returns equals COMPONENT.xml()</tt> </tt>
 
1208
<a name="DIV.xml"></a><div id="DIV.xml-def"><a name="L805"></a><tt class="py-lineno"> 805</tt> <a class="py-toggle" href="#" id="DIV.xml-toggle" onclick="return toggle('DIV.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1209
</div><div id="DIV.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.xml-expanded"><a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1210
<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line"><tt class="py-docstring">        generates the xml for this component.</tt> </tt>
1479
1211
<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1480
1212
<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line"> </tt>
1481
 
<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="web2py.gluon.dal.Rows.xml
1482
 
web2py.gluon.html.A.xml
1483
 
web2py.gluon.html.CODE.xml
1484
 
web2py.gluon.html.DIV.xml
1485
 
web2py.gluon.html.FORM.xml
1486
 
web2py.gluon.html.HTML.xml
1487
 
web2py.gluon.html.INPUT.xml
1488
 
web2py.gluon.html.MARKMIN.xml
1489
 
web2py.gluon.html.MENU.xml
1490
 
web2py.gluon.html.P.xml
1491
 
web2py.gluon.html.SCRIPT.xml
1492
 
web2py.gluon.html.STYLE.xml
1493
 
web2py.gluon.html.XHTML.xml
1494
 
web2py.gluon.html.XML.xml
1495
 
web2py.gluon.html.XmlComponent.xml
1496
 
web2py.gluon.languages.lazyT.xml
1497
 
web2py.gluon.serializers.xml
1498
 
web2py.gluon.tools.Recaptcha.xml
1499
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-125', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1500
 
</div><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line"> </tt>
1501
 
<a name="DIV.flatten"></a><div id="DIV.flatten-def"><a name="L812"></a><tt class="py-lineno"> 812</tt> <a class="py-toggle" href="#" id="DIV.flatten-toggle" onclick="return toggle('DIV.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1502
 
</div><div id="DIV.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.flatten-expanded"><a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1503
 
<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the DIV object rendered by the render function</tt> </tt>
1504
 
<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line"><tt class="py-docstring">        the render function must take text, tagname, and attributes</tt> </tt>
1505
 
<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line"><tt class="py-docstring">        render=None is equivalent to render=lambda text, tag, attr: text</tt> </tt>
1506
 
<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1507
 
<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; markdown = lambda text,tag=None,attributes={}: \</tt> </tt>
1508
 
<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line"><tt class="py-docstring">                        {None: re.sub('\s+',' ',text), \</tt> </tt>
1509
 
<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"><tt class="py-docstring">                         'h1':'#'+text+'\\n\\n', \</tt> </tt>
1510
 
<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line"><tt class="py-docstring">                         'p':text+'\\n'}.get(tag,text)</tt> </tt>
1511
 
<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=TAG('&lt;h1&gt;Header&lt;/h1&gt;&lt;p&gt;this is a     test&lt;/p&gt;')</tt> </tt>
1512
 
<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.flatten(markdown)</tt> </tt>
1513
 
<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line"><tt class="py-docstring">        '#Header\\n\\nthis is a test\\n'</tt> </tt>
 
1213
<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method web2py.gluon.html.DIV._xml()=web2py.gluon.html.DIV-class.html#_xml"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-118', '_xml', 'link-118');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1214
<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line"> </tt>
 
1215
<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="web2py.gluon.html.A.tag
 
1216
web2py.gluon.html.B.tag
 
1217
web2py.gluon.html.BEAUTIFY.tag
 
1218
web2py.gluon.html.BODY.tag
 
1219
web2py.gluon.html.BR.tag
 
1220
web2py.gluon.html.BUTTON.tag
 
1221
web2py.gluon.html.CAT.tag
 
1222
web2py.gluon.html.CENTER.tag
 
1223
web2py.gluon.html.COL.tag
 
1224
web2py.gluon.html.COLGROUP.tag
 
1225
web2py.gluon.html.DIV.tag
 
1226
web2py.gluon.html.EM.tag
 
1227
web2py.gluon.html.EMBED.tag
 
1228
web2py.gluon.html.FIELDSET.tag
 
1229
web2py.gluon.html.FORM.tag
 
1230
web2py.gluon.html.H1.tag
 
1231
web2py.gluon.html.H2.tag
 
1232
web2py.gluon.html.H3.tag
 
1233
web2py.gluon.html.H4.tag
 
1234
web2py.gluon.html.H5.tag
 
1235
web2py.gluon.html.H6.tag
 
1236
web2py.gluon.html.HEAD.tag
 
1237
web2py.gluon.html.HR.tag
 
1238
web2py.gluon.html.HTML.tag
 
1239
web2py.gluon.html.I.tag
 
1240
web2py.gluon.html.IFRAME.tag
 
1241
web2py.gluon.html.IMG.tag
 
1242
web2py.gluon.html.INPUT.tag
 
1243
web2py.gluon.html.LABEL.tag
 
1244
web2py.gluon.html.LEGEND.tag
 
1245
web2py.gluon.html.LI.tag
 
1246
web2py.gluon.html.LINK.tag
 
1247
web2py.gluon.html.MENU.tag
 
1248
web2py.gluon.html.META.tag
 
1249
web2py.gluon.html.OBJECT.tag
 
1250
web2py.gluon.html.OL.tag
 
1251
web2py.gluon.html.OPTGROUP.tag
 
1252
web2py.gluon.html.OPTION.tag
 
1253
web2py.gluon.html.P.tag
 
1254
web2py.gluon.html.PRE.tag
 
1255
web2py.gluon.html.SCRIPT.tag
 
1256
web2py.gluon.html.SELECT.tag
 
1257
web2py.gluon.html.SPAN.tag
 
1258
web2py.gluon.html.STYLE.tag
 
1259
web2py.gluon.html.TABLE.tag
 
1260
web2py.gluon.html.TBODY.tag
 
1261
web2py.gluon.html.TD.tag
 
1262
web2py.gluon.html.TEXTAREA.tag
 
1263
web2py.gluon.html.TFOOT.tag
 
1264
web2py.gluon.html.TH.tag
 
1265
web2py.gluon.html.THEAD.tag
 
1266
web2py.gluon.html.TITLE.tag
 
1267
web2py.gluon.html.TR.tag
 
1268
web2py.gluon.html.TT.tag
 
1269
web2py.gluon.html.UL.tag
 
1270
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-119', 'tag', 'link-82');">tag</a></tt><tt class="py-op">:</tt> </tt>
 
1271
<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">co</tt> </tt>
 
1272
<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"> </tt>
 
1273
<a name="L815"></a><tt class="py-lineno"> 815</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-120" class="py-name"><a title="web2py.gluon.html.A.tag
 
1274
web2py.gluon.html.B.tag
 
1275
web2py.gluon.html.BEAUTIFY.tag
 
1276
web2py.gluon.html.BODY.tag
 
1277
web2py.gluon.html.BR.tag
 
1278
web2py.gluon.html.BUTTON.tag
 
1279
web2py.gluon.html.CAT.tag
 
1280
web2py.gluon.html.CENTER.tag
 
1281
web2py.gluon.html.COL.tag
 
1282
web2py.gluon.html.COLGROUP.tag
 
1283
web2py.gluon.html.DIV.tag
 
1284
web2py.gluon.html.EM.tag
 
1285
web2py.gluon.html.EMBED.tag
 
1286
web2py.gluon.html.FIELDSET.tag
 
1287
web2py.gluon.html.FORM.tag
 
1288
web2py.gluon.html.H1.tag
 
1289
web2py.gluon.html.H2.tag
 
1290
web2py.gluon.html.H3.tag
 
1291
web2py.gluon.html.H4.tag
 
1292
web2py.gluon.html.H5.tag
 
1293
web2py.gluon.html.H6.tag
 
1294
web2py.gluon.html.HEAD.tag
 
1295
web2py.gluon.html.HR.tag
 
1296
web2py.gluon.html.HTML.tag
 
1297
web2py.gluon.html.I.tag
 
1298
web2py.gluon.html.IFRAME.tag
 
1299
web2py.gluon.html.IMG.tag
 
1300
web2py.gluon.html.INPUT.tag
 
1301
web2py.gluon.html.LABEL.tag
 
1302
web2py.gluon.html.LEGEND.tag
 
1303
web2py.gluon.html.LI.tag
 
1304
web2py.gluon.html.LINK.tag
 
1305
web2py.gluon.html.MENU.tag
 
1306
web2py.gluon.html.META.tag
 
1307
web2py.gluon.html.OBJECT.tag
 
1308
web2py.gluon.html.OL.tag
 
1309
web2py.gluon.html.OPTGROUP.tag
 
1310
web2py.gluon.html.OPTION.tag
 
1311
web2py.gluon.html.P.tag
 
1312
web2py.gluon.html.PRE.tag
 
1313
web2py.gluon.html.SCRIPT.tag
 
1314
web2py.gluon.html.SELECT.tag
 
1315
web2py.gluon.html.SPAN.tag
 
1316
web2py.gluon.html.STYLE.tag
 
1317
web2py.gluon.html.TABLE.tag
 
1318
web2py.gluon.html.TBODY.tag
 
1319
web2py.gluon.html.TD.tag
 
1320
web2py.gluon.html.TEXTAREA.tag
 
1321
web2py.gluon.html.TFOOT.tag
 
1322
web2py.gluon.html.TH.tag
 
1323
web2py.gluon.html.THEAD.tag
 
1324
web2py.gluon.html.TITLE.tag
 
1325
web2py.gluon.html.TR.tag
 
1326
web2py.gluon.html.TT.tag
 
1327
web2py.gluon.html.UL.tag
 
1328
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-120', 'tag', 'link-82');">tag</a></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-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
 
1329
<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;tag [attributes] /&gt;</tt> </tt>
 
1330
<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s /&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="web2py.gluon.html.A.tag
 
1331
web2py.gluon.html.B.tag
 
1332
web2py.gluon.html.BEAUTIFY.tag
 
1333
web2py.gluon.html.BODY.tag
 
1334
web2py.gluon.html.BR.tag
 
1335
web2py.gluon.html.BUTTON.tag
 
1336
web2py.gluon.html.CAT.tag
 
1337
web2py.gluon.html.CENTER.tag
 
1338
web2py.gluon.html.COL.tag
 
1339
web2py.gluon.html.COLGROUP.tag
 
1340
web2py.gluon.html.DIV.tag
 
1341
web2py.gluon.html.EM.tag
 
1342
web2py.gluon.html.EMBED.tag
 
1343
web2py.gluon.html.FIELDSET.tag
 
1344
web2py.gluon.html.FORM.tag
 
1345
web2py.gluon.html.H1.tag
 
1346
web2py.gluon.html.H2.tag
 
1347
web2py.gluon.html.H3.tag
 
1348
web2py.gluon.html.H4.tag
 
1349
web2py.gluon.html.H5.tag
 
1350
web2py.gluon.html.H6.tag
 
1351
web2py.gluon.html.HEAD.tag
 
1352
web2py.gluon.html.HR.tag
 
1353
web2py.gluon.html.HTML.tag
 
1354
web2py.gluon.html.I.tag
 
1355
web2py.gluon.html.IFRAME.tag
 
1356
web2py.gluon.html.IMG.tag
 
1357
web2py.gluon.html.INPUT.tag
 
1358
web2py.gluon.html.LABEL.tag
 
1359
web2py.gluon.html.LEGEND.tag
 
1360
web2py.gluon.html.LI.tag
 
1361
web2py.gluon.html.LINK.tag
 
1362
web2py.gluon.html.MENU.tag
 
1363
web2py.gluon.html.META.tag
 
1364
web2py.gluon.html.OBJECT.tag
 
1365
web2py.gluon.html.OL.tag
 
1366
web2py.gluon.html.OPTGROUP.tag
 
1367
web2py.gluon.html.OPTION.tag
 
1368
web2py.gluon.html.P.tag
 
1369
web2py.gluon.html.PRE.tag
 
1370
web2py.gluon.html.SCRIPT.tag
 
1371
web2py.gluon.html.SELECT.tag
 
1372
web2py.gluon.html.SPAN.tag
 
1373
web2py.gluon.html.STYLE.tag
 
1374
web2py.gluon.html.TABLE.tag
 
1375
web2py.gluon.html.TBODY.tag
 
1376
web2py.gluon.html.TD.tag
 
1377
web2py.gluon.html.TEXTAREA.tag
 
1378
web2py.gluon.html.TFOOT.tag
 
1379
web2py.gluon.html.TH.tag
 
1380
web2py.gluon.html.THEAD.tag
 
1381
web2py.gluon.html.TITLE.tag
 
1382
web2py.gluon.html.TR.tag
 
1383
web2py.gluon.html.TT.tag
 
1384
web2py.gluon.html.UL.tag
 
1385
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-121', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</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-name">fa</tt><tt class="py-op">)</tt> </tt>
 
1386
<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"> </tt>
 
1387
<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt class="py-comment"># else: &lt;tag [attributes]&gt;  inner components xml &lt;/tag&gt;</tt> </tt>
 
1388
<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="web2py.gluon.html.A.tag
 
1389
web2py.gluon.html.B.tag
 
1390
web2py.gluon.html.BEAUTIFY.tag
 
1391
web2py.gluon.html.BODY.tag
 
1392
web2py.gluon.html.BR.tag
 
1393
web2py.gluon.html.BUTTON.tag
 
1394
web2py.gluon.html.CAT.tag
 
1395
web2py.gluon.html.CENTER.tag
 
1396
web2py.gluon.html.COL.tag
 
1397
web2py.gluon.html.COLGROUP.tag
 
1398
web2py.gluon.html.DIV.tag
 
1399
web2py.gluon.html.EM.tag
 
1400
web2py.gluon.html.EMBED.tag
 
1401
web2py.gluon.html.FIELDSET.tag
 
1402
web2py.gluon.html.FORM.tag
 
1403
web2py.gluon.html.H1.tag
 
1404
web2py.gluon.html.H2.tag
 
1405
web2py.gluon.html.H3.tag
 
1406
web2py.gluon.html.H4.tag
 
1407
web2py.gluon.html.H5.tag
 
1408
web2py.gluon.html.H6.tag
 
1409
web2py.gluon.html.HEAD.tag
 
1410
web2py.gluon.html.HR.tag
 
1411
web2py.gluon.html.HTML.tag
 
1412
web2py.gluon.html.I.tag
 
1413
web2py.gluon.html.IFRAME.tag
 
1414
web2py.gluon.html.IMG.tag
 
1415
web2py.gluon.html.INPUT.tag
 
1416
web2py.gluon.html.LABEL.tag
 
1417
web2py.gluon.html.LEGEND.tag
 
1418
web2py.gluon.html.LI.tag
 
1419
web2py.gluon.html.LINK.tag
 
1420
web2py.gluon.html.MENU.tag
 
1421
web2py.gluon.html.META.tag
 
1422
web2py.gluon.html.OBJECT.tag
 
1423
web2py.gluon.html.OL.tag
 
1424
web2py.gluon.html.OPTGROUP.tag
 
1425
web2py.gluon.html.OPTION.tag
 
1426
web2py.gluon.html.P.tag
 
1427
web2py.gluon.html.PRE.tag
 
1428
web2py.gluon.html.SCRIPT.tag
 
1429
web2py.gluon.html.SELECT.tag
 
1430
web2py.gluon.html.SPAN.tag
 
1431
web2py.gluon.html.STYLE.tag
 
1432
web2py.gluon.html.TABLE.tag
 
1433
web2py.gluon.html.TBODY.tag
 
1434
web2py.gluon.html.TD.tag
 
1435
web2py.gluon.html.TEXTAREA.tag
 
1436
web2py.gluon.html.TFOOT.tag
 
1437
web2py.gluon.html.TH.tag
 
1438
web2py.gluon.html.THEAD.tag
 
1439
web2py.gluon.html.TITLE.tag
 
1440
web2py.gluon.html.TR.tag
 
1441
web2py.gluon.html.TT.tag
 
1442
web2py.gluon.html.UL.tag
 
1443
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-122', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="web2py.gluon.html.A.tag
 
1444
web2py.gluon.html.B.tag
 
1445
web2py.gluon.html.BEAUTIFY.tag
 
1446
web2py.gluon.html.BODY.tag
 
1447
web2py.gluon.html.BR.tag
 
1448
web2py.gluon.html.BUTTON.tag
 
1449
web2py.gluon.html.CAT.tag
 
1450
web2py.gluon.html.CENTER.tag
 
1451
web2py.gluon.html.COL.tag
 
1452
web2py.gluon.html.COLGROUP.tag
 
1453
web2py.gluon.html.DIV.tag
 
1454
web2py.gluon.html.EM.tag
 
1455
web2py.gluon.html.EMBED.tag
 
1456
web2py.gluon.html.FIELDSET.tag
 
1457
web2py.gluon.html.FORM.tag
 
1458
web2py.gluon.html.H1.tag
 
1459
web2py.gluon.html.H2.tag
 
1460
web2py.gluon.html.H3.tag
 
1461
web2py.gluon.html.H4.tag
 
1462
web2py.gluon.html.H5.tag
 
1463
web2py.gluon.html.H6.tag
 
1464
web2py.gluon.html.HEAD.tag
 
1465
web2py.gluon.html.HR.tag
 
1466
web2py.gluon.html.HTML.tag
 
1467
web2py.gluon.html.I.tag
 
1468
web2py.gluon.html.IFRAME.tag
 
1469
web2py.gluon.html.IMG.tag
 
1470
web2py.gluon.html.INPUT.tag
 
1471
web2py.gluon.html.LABEL.tag
 
1472
web2py.gluon.html.LEGEND.tag
 
1473
web2py.gluon.html.LI.tag
 
1474
web2py.gluon.html.LINK.tag
 
1475
web2py.gluon.html.MENU.tag
 
1476
web2py.gluon.html.META.tag
 
1477
web2py.gluon.html.OBJECT.tag
 
1478
web2py.gluon.html.OL.tag
 
1479
web2py.gluon.html.OPTGROUP.tag
 
1480
web2py.gluon.html.OPTION.tag
 
1481
web2py.gluon.html.P.tag
 
1482
web2py.gluon.html.PRE.tag
 
1483
web2py.gluon.html.SCRIPT.tag
 
1484
web2py.gluon.html.SELECT.tag
 
1485
web2py.gluon.html.SPAN.tag
 
1486
web2py.gluon.html.STYLE.tag
 
1487
web2py.gluon.html.TABLE.tag
 
1488
web2py.gluon.html.TBODY.tag
 
1489
web2py.gluon.html.TD.tag
 
1490
web2py.gluon.html.TEXTAREA.tag
 
1491
web2py.gluon.html.TFOOT.tag
 
1492
web2py.gluon.html.TH.tag
 
1493
web2py.gluon.html.THEAD.tag
 
1494
web2py.gluon.html.TITLE.tag
 
1495
web2py.gluon.html.TR.tag
 
1496
web2py.gluon.html.TT.tag
 
1497
web2py.gluon.html.UL.tag
 
1498
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-123', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
1499
</div><a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line"> </tt>
 
1500
<a name="DIV.__str__"></a><div id="DIV.__str__-def"><a name="L822"></a><tt class="py-lineno"> 822</tt> <a class="py-toggle" href="#" id="DIV.__str__-toggle" onclick="return toggle('DIV.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1501
</div><div id="DIV.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.__str__-expanded"><a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1502
<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line"><tt class="py-docstring">        str(COMPONENT) returns equals COMPONENT.xml()</tt> </tt>
1514
1503
<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1515
1504
<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"> </tt>
1516
 
<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
1517
 
<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
1518
 
<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt id="link-126" class="py-name" targets="Class web2py.gluon.html.XmlComponent=web2py.gluon.html.XmlComponent-class.html"><a title="web2py.gluon.html.XmlComponent" class="py-name" href="#" onclick="return doclink('link-126', 'XmlComponent', 'link-126');">XmlComponent</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1519
 
<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">                <tt id="link-127" class="py-name" targets="Variable web2py.gluon.languages.lazyT.s=web2py.gluon.languages.lazyT-class.html#s"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-127', 's', 'link-127');">s</a></tt><tt class="py-op">=</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method web2py.gluon.html.DIV.flatten()=web2py.gluon.html.DIV-class.html#flatten,Method web2py.gluon.html.MARKMIN.flatten()=web2py.gluon.html.MARKMIN-class.html#flatten,Method web2py.gluon.html.XML.flatten()=web2py.gluon.html.XML-class.html#flatten"><a title="web2py.gluon.html.DIV.flatten
 
1505
<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
1506
web2py.gluon.html.A.xml
 
1507
web2py.gluon.html.CODE.xml
 
1508
web2py.gluon.html.DIV.xml
 
1509
web2py.gluon.html.FORM.xml
 
1510
web2py.gluon.html.HTML.xml
 
1511
web2py.gluon.html.INPUT.xml
 
1512
web2py.gluon.html.MARKMIN.xml
 
1513
web2py.gluon.html.MENU.xml
 
1514
web2py.gluon.html.P.xml
 
1515
web2py.gluon.html.SCRIPT.xml
 
1516
web2py.gluon.html.STYLE.xml
 
1517
web2py.gluon.html.XHTML.xml
 
1518
web2py.gluon.html.XML.xml
 
1519
web2py.gluon.html.XmlComponent.xml
 
1520
web2py.gluon.languages.lazyT.xml
 
1521
web2py.gluon.serializers.xml
 
1522
web2py.gluon.tools.Recaptcha.xml
 
1523
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-124', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1524
</div><a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line"> </tt>
 
1525
<a name="DIV.flatten"></a><div id="DIV.flatten-def"><a name="L829"></a><tt class="py-lineno"> 829</tt> <a class="py-toggle" href="#" id="DIV.flatten-toggle" onclick="return toggle('DIV.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1526
</div><div id="DIV.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.flatten-expanded"><a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1527
<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the DIV object rendered by the render function</tt> </tt>
 
1528
<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line"><tt class="py-docstring">        the render function must take text, tagname, and attributes</tt> </tt>
 
1529
<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line"><tt class="py-docstring">        render=None is equivalent to render=lambda text, tag, attr: text</tt> </tt>
 
1530
<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1531
<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; markdown = lambda text,tag=None,attributes={}: \</tt> </tt>
 
1532
<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-docstring">                        {None: re.sub('\s+',' ',text), \</tt> </tt>
 
1533
<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-docstring">                         'h1':'#'+text+'\\n\\n', \</tt> </tt>
 
1534
<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-docstring">                         'p':text+'\\n'}.get(tag,text)</tt> </tt>
 
1535
<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=TAG('&lt;h1&gt;Header&lt;/h1&gt;&lt;p&gt;this is a     test&lt;/p&gt;')</tt> </tt>
 
1536
<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.flatten(markdown)</tt> </tt>
 
1537
<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"><tt class="py-docstring">        '#Header\\n\\nthis is a test\\n'</tt> </tt>
 
1538
<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1539
<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"> </tt>
 
1540
<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">        <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
1541
<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
1542
<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt id="link-125" class="py-name" targets="Class web2py.gluon.html.XmlComponent=web2py.gluon.html.XmlComponent-class.html"><a title="web2py.gluon.html.XmlComponent" class="py-name" href="#" onclick="return doclink('link-125', 'XmlComponent', 'link-125');">XmlComponent</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1543
<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">                <tt id="link-126" class="py-name" targets="Variable web2py.gluon.languages.lazyT.s=web2py.gluon.languages.lazyT-class.html#s"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-126', 's', 'link-126');">s</a></tt><tt class="py-op">=</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method web2py.gluon.html.DIV.flatten()=web2py.gluon.html.DIV-class.html#flatten,Method web2py.gluon.html.MARKMIN.flatten()=web2py.gluon.html.MARKMIN-class.html#flatten,Method web2py.gluon.html.XML.flatten()=web2py.gluon.html.XML-class.html#flatten"><a title="web2py.gluon.html.DIV.flatten
1520
1544
web2py.gluon.html.MARKMIN.flatten
1521
 
web2py.gluon.html.XML.flatten" class="py-name" href="#" onclick="return doclink('link-128', 'flatten', 'link-128');">flatten</a></tt><tt class="py-op">(</tt><tt id="link-129" class="py-name"><a title="web2py.gluon.globals.Response.render
1522
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-129', 'render', 'link-4');">render</a></tt><tt class="py-op">)</tt> </tt>
1523
 
<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-130" class="py-name"><a title="web2py.gluon.globals.Response.render
1524
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-130', 'render', 'link-4');">render</a></tt><tt class="py-op">:</tt> </tt>
1525
 
<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">                <tt id="link-131" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-131', 's', 'link-127');">s</a></tt><tt class="py-op">=</tt><tt id="link-132" class="py-name"><a title="web2py.gluon.globals.Response.render
1526
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-132', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
1527
 
<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1528
 
<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">                <tt id="link-133" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-133', 's', 'link-127');">s</a></tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
1529
 
<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">            <tt class="py-name">text</tt><tt class="py-op">+=</tt><tt id="link-134" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-134', 's', 'link-127');">s</a></tt> </tt>
1530
 
<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-135" class="py-name"><a title="web2py.gluon.globals.Response.render
1531
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-135', 'render', 'link-4');">render</a></tt><tt class="py-op">:</tt> </tt>
1532
 
<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="web2py.gluon.globals.Response.render
1533
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-136', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="web2py.gluon.html.A.tag
1534
 
web2py.gluon.html.B.tag
1535
 
web2py.gluon.html.BEAUTIFY.tag
1536
 
web2py.gluon.html.BODY.tag
1537
 
web2py.gluon.html.BR.tag
1538
 
web2py.gluon.html.BUTTON.tag
1539
 
web2py.gluon.html.CAT.tag
1540
 
web2py.gluon.html.CENTER.tag
1541
 
web2py.gluon.html.COL.tag
1542
 
web2py.gluon.html.COLGROUP.tag
1543
 
web2py.gluon.html.DIV.tag
1544
 
web2py.gluon.html.EM.tag
1545
 
web2py.gluon.html.EMBED.tag
1546
 
web2py.gluon.html.FIELDSET.tag
1547
 
web2py.gluon.html.FORM.tag
1548
 
web2py.gluon.html.H1.tag
1549
 
web2py.gluon.html.H2.tag
1550
 
web2py.gluon.html.H3.tag
1551
 
web2py.gluon.html.H4.tag
1552
 
web2py.gluon.html.H5.tag
1553
 
web2py.gluon.html.H6.tag
1554
 
web2py.gluon.html.HEAD.tag
1555
 
web2py.gluon.html.HR.tag
1556
 
web2py.gluon.html.HTML.tag
1557
 
web2py.gluon.html.I.tag
1558
 
web2py.gluon.html.IFRAME.tag
1559
 
web2py.gluon.html.IMG.tag
1560
 
web2py.gluon.html.INPUT.tag
1561
 
web2py.gluon.html.LABEL.tag
1562
 
web2py.gluon.html.LEGEND.tag
1563
 
web2py.gluon.html.LI.tag
1564
 
web2py.gluon.html.LINK.tag
1565
 
web2py.gluon.html.MENU.tag
1566
 
web2py.gluon.html.META.tag
1567
 
web2py.gluon.html.OBJECT.tag
1568
 
web2py.gluon.html.OL.tag
1569
 
web2py.gluon.html.OPTGROUP.tag
1570
 
web2py.gluon.html.OPTION.tag
1571
 
web2py.gluon.html.P.tag
1572
 
web2py.gluon.html.PRE.tag
1573
 
web2py.gluon.html.SCRIPT.tag
1574
 
web2py.gluon.html.SELECT.tag
1575
 
web2py.gluon.html.SPAN.tag
1576
 
web2py.gluon.html.STYLE.tag
1577
 
web2py.gluon.html.TABLE.tag
1578
 
web2py.gluon.html.TBODY.tag
1579
 
web2py.gluon.html.TD.tag
1580
 
web2py.gluon.html.TEXTAREA.tag
1581
 
web2py.gluon.html.TFOOT.tag
1582
 
web2py.gluon.html.TH.tag
1583
 
web2py.gluon.html.THEAD.tag
1584
 
web2py.gluon.html.TITLE.tag
1585
 
web2py.gluon.html.TR.tag
1586
 
web2py.gluon.html.TT.tag
1587
 
web2py.gluon.html.UL.tag
1588
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-137', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
1589
 
<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
1590
 
</div><a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"> </tt>
1591
 
<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">    <tt id="link-138" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_tag=web2py.gluon.html.DIV-class.html#regex_tag"><a title="web2py.gluon.html.DIV.regex_tag" class="py-name" href="#" onclick="return doclink('link-138', 'regex_tag', 'link-138');">regex_tag</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'^[\w\-\:]+'</tt><tt class="py-op">)</tt> </tt>
1592
 
<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">    <tt id="link-139" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_id=web2py.gluon.html.DIV-class.html#regex_id"><a title="web2py.gluon.html.DIV.regex_id" class="py-name" href="#" onclick="return doclink('link-139', 'regex_id', 'link-139');">regex_id</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'#([\w\-]+)'</tt><tt class="py-op">)</tt> </tt>
1593
 
<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">    <tt id="link-140" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_class=web2py.gluon.html.DIV-class.html#regex_class"><a title="web2py.gluon.html.DIV.regex_class" class="py-name" href="#" onclick="return doclink('link-140', 'regex_class', 'link-140');">regex_class</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'\.([\w\-]+)'</tt><tt class="py-op">)</tt> </tt>
1594
 
<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">    <tt id="link-141" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_attr=web2py.gluon.html.DIV-class.html#regex_attr"><a title="web2py.gluon.html.DIV.regex_attr" class="py-name" href="#" onclick="return doclink('link-141', 'regex_attr', 'link-141');">regex_attr</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'\[([\w\-\:]+)=(.*?)\]'</tt><tt class="py-op">)</tt> </tt>
1595
 
<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"> </tt>
1596
 
<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"> </tt>
1597
 
<a name="DIV.elements"></a><div id="DIV.elements-def"><a name="L846"></a><tt class="py-lineno"> 846</tt> <a class="py-toggle" href="#" id="DIV.elements-toggle" onclick="return toggle('DIV.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1598
 
</div><div id="DIV.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.elements-expanded"><a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1599
 
<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-docstring">        find all component that match the supplied attribute dictionary,</tt> </tt>
1600
 
<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-docstring">        or None if nothing could be found</tt> </tt>
1601
 
<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1602
 
<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"><tt class="py-docstring">        All components of the components are searched.</tt> </tt>
1603
 
<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1604
 
<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a = DIV(DIV(SPAN('x'),3,DIV(SPAN('y'))))</tt> </tt>
1605
 
<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('span',first_only=True): c[0]='z'</tt> </tt>
1606
 
<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
1607
 
<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;div&gt;&lt;span&gt;z&lt;/span&gt;3&lt;div&gt;&lt;span&gt;y&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
1608
 
<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('span'): c[0]='z'</tt> </tt>
1609
 
<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
1610
 
<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;div&gt;&lt;span&gt;z&lt;/span&gt;3&lt;div&gt;&lt;span&gt;z&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
1611
 
<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1612
 
<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line"><tt class="py-docstring">        It also supports a syntax compatible with jQuery</tt> </tt>
1613
 
<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1614
 
<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=TAG('&lt;div&gt;&lt;span&gt;&lt;a id="1-1" u:v=$&gt;hello&lt;/a&gt;&lt;/span&gt;&lt;p class="this is a test"&gt;world&lt;/p&gt;&lt;/div&gt;')</tt> </tt>
1615
 
<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for e in a.elements('div a#1-1, p.is'): print e.flatten()</tt> </tt>
1616
 
<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"><tt class="py-docstring">        hello</tt> </tt>
1617
 
<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line"><tt class="py-docstring">        world</tt> </tt>
1618
 
<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for e in a.elements('#1-1'): print e.flatten()</tt> </tt>
1619
 
<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"><tt class="py-docstring">        hello</tt> </tt>
1620
 
<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.elements('a[u:v=$]')[0].xml()</tt> </tt>
1621
 
<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;a id="1-1" u:v="$"&gt;hello&lt;/a&gt;'</tt> </tt>
1622
 
<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1623
 
<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=FORM( INPUT(_type='text'), SELECT(range(1)), TEXTAREA() )</tt> </tt>
1624
 
<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('input, select, textarea'): c['_disabled'] = 'disabled'</tt> </tt>
1625
 
<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.xml()</tt> </tt>
1626
 
<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;form action="" enctype="multipart/form-data" method="post"&gt;&lt;input disabled="disabled" type="text" /&gt;&lt;select disabled="disabled"&gt;&lt;option value="0"&gt;0&lt;/option&gt;&lt;/select&gt;&lt;textarea cols="40" disabled="disabled" rows="10"&gt;&lt;/textarea&gt;&lt;/form&gt;'</tt> </tt>
1627
 
<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1628
 
<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-142" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-142', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
1629
 
<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">            <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-143" 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-143', 'strip', 'link-143');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
1630
 
<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-144" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-144', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
1631
 
<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">            <tt class="py-name">subset</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method web2py.gluon.html.DIV.elements()=web2py.gluon.html.DIV-class.html#elements,Method web2py.gluon.html.MARKMIN.elements()=web2py.gluon.html.MARKMIN-class.html#elements,Method web2py.gluon.html.XML.elements()=web2py.gluon.html.XML-class.html#elements"><a title="web2py.gluon.html.DIV.elements
1632
 
web2py.gluon.html.MARKMIN.elements
1633
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-145', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt> </tt>
1634
 
<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt><tt id="link-146" class="py-name" targets="Function web2py.gluon.rocket.b()=web2py.gluon.rocket-module.html#b"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-146', 'b', 'link-146');">b</a></tt><tt class="py-op">:</tt><tt class="py-name">a</tt><tt class="py-op">+</tt><tt id="link-147" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-147', 'b', 'link-146');">b</a></tt><tt class="py-op">,</tt><tt class="py-name">subset</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
1635
 
<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-148" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-148', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
1636
 
<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">            <tt id="link-149" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-149', 'items', 'link-29');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">args</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-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
1637
 
<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-150" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-150', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-151', 'items', 'link-29');">items</a></tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
1638
 
<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                <tt class="py-name">subset</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="web2py.gluon.html.DIV.elements
1639
 
web2py.gluon.html.MARKMIN.elements
1640
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-152', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-153', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt id="link-154" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-154', 'items', 'link-29');">items</a></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-op">)</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="web2py.gluon.html.DIV.elements
1641
 
web2py.gluon.html.MARKMIN.elements
1642
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-155', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt><tt id="link-156" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-156', 'items', 'link-29');">items</a></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-op">]</tt> </tt>
1643
 
<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt><tt id="link-157" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-157', 'b', 'link-146');">b</a></tt><tt class="py-op">:</tt><tt class="py-name">a</tt><tt class="py-op">+</tt><tt id="link-158" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-158', 'b', 'link-146');">b</a></tt><tt class="py-op">,</tt><tt class="py-name">subset</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
1644
 
<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1645
 
<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">                <tt class="py-name">item</tt><tt class="py-op">=</tt><tt id="link-159" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-159', 'items', 'link-29');">items</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
1646
 
<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">'#'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'['</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
1647
 
<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">                    <tt class="py-name">match_tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="web2py.gluon.html.DIV.regex_tag" class="py-name" href="#" onclick="return doclink('link-160', 'regex_tag', 'link-138');">regex_tag</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-161', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
1648
 
<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">                    <tt class="py-name">match_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="web2py.gluon.html.DIV.regex_id" class="py-name" href="#" onclick="return doclink('link-162', 'regex_id', 'link-139');">regex_id</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-163', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
1649
 
<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">                    <tt class="py-name">match_class</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="web2py.gluon.html.DIV.regex_class" class="py-name" href="#" onclick="return doclink('link-164', 'regex_class', 'link-140');">regex_class</a></tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-165', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
1650
 
<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">                    <tt class="py-name">match_attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="web2py.gluon.html.DIV.regex_attr" class="py-name" href="#" onclick="return doclink('link-166', 'regex_attr', 'link-141');">regex_attr</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
1651
 
<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">                    <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
1652
 
<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_tag</tt><tt class="py-op">:</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">match_tag</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
1653
 
<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_id</tt><tt class="py-op">:</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_id'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">match_id</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
1654
 
<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt><tt class="py-op">:</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'(?&lt;!\w)%s(?!\w)'</tt> <tt class="py-op">%</tt> \ </tt>
1655
 
<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">                       <tt class="py-name">match_class</tt><tt class="py-op">.</tt><tt class="py-name">group</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-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">,</tt><tt class="py-string">'\\-'</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">'\\:'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
1656
 
<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">match_attr</tt><tt class="py-op">:</tt> </tt>
1657
 
<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">                        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">group</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-op">=</tt><tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
1658
 
<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="web2py.gluon.html.DIV.elements
1659
 
web2py.gluon.html.MARKMIN.elements
1660
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-167', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
1661
 
<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">        <tt class="py-comment"># make a copy of the components</tt> </tt>
1662
 
<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
1663
 
<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1664
 
<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="web2py.gluon.rocket.Headers.has_key" class="py-name" href="#" onclick="return doclink('link-168', 'has_key', 'link-28');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">"first_only"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1665
 
<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">            <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
1666
 
<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
1667
 
<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt class="py-comment"># check if the component has an attribute with the same</tt> </tt>
1668
 
<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># value as provided</tt> </tt>
1669
 
<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1670
 
<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">        <tt id="link-169" class="py-name"><a title="web2py.gluon.html.A.tag
1671
 
web2py.gluon.html.B.tag
1672
 
web2py.gluon.html.BEAUTIFY.tag
1673
 
web2py.gluon.html.BODY.tag
1674
 
web2py.gluon.html.BR.tag
1675
 
web2py.gluon.html.BUTTON.tag
1676
 
web2py.gluon.html.CAT.tag
1677
 
web2py.gluon.html.CENTER.tag
1678
 
web2py.gluon.html.COL.tag
1679
 
web2py.gluon.html.COLGROUP.tag
1680
 
web2py.gluon.html.DIV.tag
1681
 
web2py.gluon.html.EM.tag
1682
 
web2py.gluon.html.EMBED.tag
1683
 
web2py.gluon.html.FIELDSET.tag
1684
 
web2py.gluon.html.FORM.tag
1685
 
web2py.gluon.html.H1.tag
1686
 
web2py.gluon.html.H2.tag
1687
 
web2py.gluon.html.H3.tag
1688
 
web2py.gluon.html.H4.tag
1689
 
web2py.gluon.html.H5.tag
1690
 
web2py.gluon.html.H6.tag
1691
 
web2py.gluon.html.HEAD.tag
1692
 
web2py.gluon.html.HR.tag
1693
 
web2py.gluon.html.HTML.tag
1694
 
web2py.gluon.html.I.tag
1695
 
web2py.gluon.html.IFRAME.tag
1696
 
web2py.gluon.html.IMG.tag
1697
 
web2py.gluon.html.INPUT.tag
1698
 
web2py.gluon.html.LABEL.tag
1699
 
web2py.gluon.html.LEGEND.tag
1700
 
web2py.gluon.html.LI.tag
1701
 
web2py.gluon.html.LINK.tag
1702
 
web2py.gluon.html.MENU.tag
1703
 
web2py.gluon.html.META.tag
1704
 
web2py.gluon.html.OBJECT.tag
1705
 
web2py.gluon.html.OL.tag
1706
 
web2py.gluon.html.OPTGROUP.tag
1707
 
web2py.gluon.html.OPTION.tag
1708
 
web2py.gluon.html.P.tag
1709
 
web2py.gluon.html.PRE.tag
1710
 
web2py.gluon.html.SCRIPT.tag
1711
 
web2py.gluon.html.SELECT.tag
1712
 
web2py.gluon.html.SPAN.tag
1713
 
web2py.gluon.html.STYLE.tag
1714
 
web2py.gluon.html.TABLE.tag
1715
 
web2py.gluon.html.TBODY.tag
1716
 
web2py.gluon.html.TD.tag
1717
 
web2py.gluon.html.TEXTAREA.tag
1718
 
web2py.gluon.html.TFOOT.tag
1719
 
web2py.gluon.html.TH.tag
1720
 
web2py.gluon.html.THEAD.tag
1721
 
web2py.gluon.html.TITLE.tag
1722
 
web2py.gluon.html.TR.tag
1723
 
web2py.gluon.html.TT.tag
1724
 
web2py.gluon.html.UL.tag
1725
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-169', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'tag'</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">""</tt><tt class="py-op">)</tt> </tt>
1726
 
<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt id="link-170" class="py-name"><a title="web2py.gluon.html.A.tag
1727
 
web2py.gluon.html.B.tag
1728
 
web2py.gluon.html.BEAUTIFY.tag
1729
 
web2py.gluon.html.BODY.tag
1730
 
web2py.gluon.html.BR.tag
1731
 
web2py.gluon.html.BUTTON.tag
1732
 
web2py.gluon.html.CAT.tag
1733
 
web2py.gluon.html.CENTER.tag
1734
 
web2py.gluon.html.COL.tag
1735
 
web2py.gluon.html.COLGROUP.tag
1736
 
web2py.gluon.html.DIV.tag
1737
 
web2py.gluon.html.EM.tag
1738
 
web2py.gluon.html.EMBED.tag
1739
 
web2py.gluon.html.FIELDSET.tag
1740
 
web2py.gluon.html.FORM.tag
1741
 
web2py.gluon.html.H1.tag
1742
 
web2py.gluon.html.H2.tag
1743
 
web2py.gluon.html.H3.tag
1744
 
web2py.gluon.html.H4.tag
1745
 
web2py.gluon.html.H5.tag
1746
 
web2py.gluon.html.H6.tag
1747
 
web2py.gluon.html.HEAD.tag
1748
 
web2py.gluon.html.HR.tag
1749
 
web2py.gluon.html.HTML.tag
1750
 
web2py.gluon.html.I.tag
1751
 
web2py.gluon.html.IFRAME.tag
1752
 
web2py.gluon.html.IMG.tag
1753
 
web2py.gluon.html.INPUT.tag
1754
 
web2py.gluon.html.LABEL.tag
1755
 
web2py.gluon.html.LEGEND.tag
1756
 
web2py.gluon.html.LI.tag
1757
 
web2py.gluon.html.LINK.tag
1758
 
web2py.gluon.html.MENU.tag
1759
 
web2py.gluon.html.META.tag
1760
 
web2py.gluon.html.OBJECT.tag
1761
 
web2py.gluon.html.OL.tag
1762
 
web2py.gluon.html.OPTGROUP.tag
1763
 
web2py.gluon.html.OPTION.tag
1764
 
web2py.gluon.html.P.tag
1765
 
web2py.gluon.html.PRE.tag
1766
 
web2py.gluon.html.SCRIPT.tag
1767
 
web2py.gluon.html.SELECT.tag
1768
 
web2py.gluon.html.SPAN.tag
1769
 
web2py.gluon.html.STYLE.tag
1770
 
web2py.gluon.html.TABLE.tag
1771
 
web2py.gluon.html.TBODY.tag
1772
 
web2py.gluon.html.TD.tag
1773
 
web2py.gluon.html.TEXTAREA.tag
1774
 
web2py.gluon.html.TFOOT.tag
1775
 
web2py.gluon.html.TH.tag
1776
 
web2py.gluon.html.THEAD.tag
1777
 
web2py.gluon.html.TITLE.tag
1778
 
web2py.gluon.html.TR.tag
1779
 
web2py.gluon.html.TT.tag
1780
 
web2py.gluon.html.UL.tag
1781
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-170', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt>
1782
 
<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">            <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1783
 
<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-171', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1784
 
<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1785
 
<a name="L916"></a><tt class="py-lineno"> 916</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">key</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1786
 
<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">                    <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1787
 
<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
1788
 
<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-172', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1789
 
<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">                    <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1790
 
<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1791
 
<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">                <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1792
 
<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'find'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">:</tt> </tt>
1793
 
<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">            <tt id="link-173" class="py-name" targets="Method web2py.gluon.dal.Rows.find()=web2py.gluon.dal.Rows-class.html#find"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-173', 'find', 'link-173');">find</a></tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'find'</tt><tt class="py-op">]</tt> </tt>
1794
 
<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
1795
 
<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-174" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-174', 'find', 'link-173');">find</a></tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1796
 
<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-175', 'find', 'link-173');">find</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
1797
 
<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1798
 
<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
1799
 
<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt id="link-176" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-176', 'find', 'link-173');">find</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-177', 'search', 'link-43');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1800
 
<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1801
 
<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt class="py-comment"># if found, return the component</tt> </tt>
1802
 
<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">check</tt><tt class="py-op">:</tt> </tt>
1803
 
<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">            <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="web2py.gluon.html.DIV.append
 
1545
web2py.gluon.html.XML.flatten" class="py-name" href="#" onclick="return doclink('link-127', 'flatten', 'link-127');">flatten</a></tt><tt class="py-op">(</tt><tt id="link-128" class="py-name"><a title="web2py.gluon.globals.Response.render
 
1546
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-128', 'render', 'link-4');">render</a></tt><tt class="py-op">)</tt> </tt>
 
1547
<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-129" class="py-name"><a title="web2py.gluon.globals.Response.render
 
1548
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-129', 'render', 'link-4');">render</a></tt><tt class="py-op">:</tt> </tt>
 
1549
<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">                <tt id="link-130" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-130', 's', 'link-126');">s</a></tt><tt class="py-op">=</tt><tt id="link-131" class="py-name"><a title="web2py.gluon.globals.Response.render
 
1550
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-131', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
1551
<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1552
<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">                <tt id="link-132" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-132', 's', 'link-126');">s</a></tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
1553
<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">            <tt class="py-name">text</tt><tt class="py-op">+=</tt><tt id="link-133" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-133', 's', 'link-126');">s</a></tt> </tt>
 
1554
<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-134" class="py-name"><a title="web2py.gluon.globals.Response.render
 
1555
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-134', 'render', 'link-4');">render</a></tt><tt class="py-op">:</tt> </tt>
 
1556
<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="web2py.gluon.globals.Response.render
 
1557
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-135', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="web2py.gluon.html.A.tag
 
1558
web2py.gluon.html.B.tag
 
1559
web2py.gluon.html.BEAUTIFY.tag
 
1560
web2py.gluon.html.BODY.tag
 
1561
web2py.gluon.html.BR.tag
 
1562
web2py.gluon.html.BUTTON.tag
 
1563
web2py.gluon.html.CAT.tag
 
1564
web2py.gluon.html.CENTER.tag
 
1565
web2py.gluon.html.COL.tag
 
1566
web2py.gluon.html.COLGROUP.tag
 
1567
web2py.gluon.html.DIV.tag
 
1568
web2py.gluon.html.EM.tag
 
1569
web2py.gluon.html.EMBED.tag
 
1570
web2py.gluon.html.FIELDSET.tag
 
1571
web2py.gluon.html.FORM.tag
 
1572
web2py.gluon.html.H1.tag
 
1573
web2py.gluon.html.H2.tag
 
1574
web2py.gluon.html.H3.tag
 
1575
web2py.gluon.html.H4.tag
 
1576
web2py.gluon.html.H5.tag
 
1577
web2py.gluon.html.H6.tag
 
1578
web2py.gluon.html.HEAD.tag
 
1579
web2py.gluon.html.HR.tag
 
1580
web2py.gluon.html.HTML.tag
 
1581
web2py.gluon.html.I.tag
 
1582
web2py.gluon.html.IFRAME.tag
 
1583
web2py.gluon.html.IMG.tag
 
1584
web2py.gluon.html.INPUT.tag
 
1585
web2py.gluon.html.LABEL.tag
 
1586
web2py.gluon.html.LEGEND.tag
 
1587
web2py.gluon.html.LI.tag
 
1588
web2py.gluon.html.LINK.tag
 
1589
web2py.gluon.html.MENU.tag
 
1590
web2py.gluon.html.META.tag
 
1591
web2py.gluon.html.OBJECT.tag
 
1592
web2py.gluon.html.OL.tag
 
1593
web2py.gluon.html.OPTGROUP.tag
 
1594
web2py.gluon.html.OPTION.tag
 
1595
web2py.gluon.html.P.tag
 
1596
web2py.gluon.html.PRE.tag
 
1597
web2py.gluon.html.SCRIPT.tag
 
1598
web2py.gluon.html.SELECT.tag
 
1599
web2py.gluon.html.SPAN.tag
 
1600
web2py.gluon.html.STYLE.tag
 
1601
web2py.gluon.html.TABLE.tag
 
1602
web2py.gluon.html.TBODY.tag
 
1603
web2py.gluon.html.TD.tag
 
1604
web2py.gluon.html.TEXTAREA.tag
 
1605
web2py.gluon.html.TFOOT.tag
 
1606
web2py.gluon.html.TH.tag
 
1607
web2py.gluon.html.THEAD.tag
 
1608
web2py.gluon.html.TITLE.tag
 
1609
web2py.gluon.html.TR.tag
 
1610
web2py.gluon.html.TT.tag
 
1611
web2py.gluon.html.UL.tag
 
1612
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-136', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
1613
<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
 
1614
</div><a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"> </tt>
 
1615
<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">    <tt id="link-137" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_tag=web2py.gluon.html.DIV-class.html#regex_tag"><a title="web2py.gluon.html.DIV.regex_tag" class="py-name" href="#" onclick="return doclink('link-137', 'regex_tag', 'link-137');">regex_tag</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'^[\w\-\:]+'</tt><tt class="py-op">)</tt> </tt>
 
1616
<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">    <tt id="link-138" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_id=web2py.gluon.html.DIV-class.html#regex_id"><a title="web2py.gluon.html.DIV.regex_id" class="py-name" href="#" onclick="return doclink('link-138', 'regex_id', 'link-138');">regex_id</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'#([\w\-]+)'</tt><tt class="py-op">)</tt> </tt>
 
1617
<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">    <tt id="link-139" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_class=web2py.gluon.html.DIV-class.html#regex_class"><a title="web2py.gluon.html.DIV.regex_class" class="py-name" href="#" onclick="return doclink('link-139', 'regex_class', 'link-139');">regex_class</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'\.([\w\-]+)'</tt><tt class="py-op">)</tt> </tt>
 
1618
<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">    <tt id="link-140" class="py-name" targets="Variable web2py.gluon.html.DIV.regex_attr=web2py.gluon.html.DIV-class.html#regex_attr"><a title="web2py.gluon.html.DIV.regex_attr" class="py-name" href="#" onclick="return doclink('link-140', 'regex_attr', 'link-140');">regex_attr</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'\[([\w\-\:]+)=(.*?)\]'</tt><tt class="py-op">)</tt> </tt>
 
1619
<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line"> </tt>
 
1620
<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line"> </tt>
 
1621
<a name="DIV.elements"></a><div id="DIV.elements-def"><a name="L863"></a><tt class="py-lineno"> 863</tt> <a class="py-toggle" href="#" id="DIV.elements-toggle" onclick="return toggle('DIV.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1622
</div><div id="DIV.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.elements-expanded"><a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1623
<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"><tt class="py-docstring">        find all component that match the supplied attribute dictionary,</tt> </tt>
 
1624
<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line"><tt class="py-docstring">        or None if nothing could be found</tt> </tt>
 
1625
<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1626
<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"><tt class="py-docstring">        All components of the components are searched.</tt> </tt>
 
1627
<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1628
<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a = DIV(DIV(SPAN('x'),3,DIV(SPAN('y'))))</tt> </tt>
 
1629
<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('span',first_only=True): c[0]='z'</tt> </tt>
 
1630
<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
 
1631
<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;div&gt;&lt;span&gt;z&lt;/span&gt;3&lt;div&gt;&lt;span&gt;y&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
 
1632
<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('span'): c[0]='z'</tt> </tt>
 
1633
<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print a</tt> </tt>
 
1634
<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;div&gt;&lt;div&gt;&lt;span&gt;z&lt;/span&gt;3&lt;div&gt;&lt;span&gt;z&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
 
1635
<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1636
<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-docstring">        It also supports a syntax compatible with jQuery</tt> </tt>
 
1637
<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1638
<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=TAG('&lt;div&gt;&lt;span&gt;&lt;a id="1-1" u:v=$&gt;hello&lt;/a&gt;&lt;/span&gt;&lt;p class="this is a test"&gt;world&lt;/p&gt;&lt;/div&gt;')</tt> </tt>
 
1639
<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for e in a.elements('div a#1-1, p.is'): print e.flatten()</tt> </tt>
 
1640
<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-docstring">        hello</tt> </tt>
 
1641
<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"><tt class="py-docstring">        world</tt> </tt>
 
1642
<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for e in a.elements('#1-1'): print e.flatten()</tt> </tt>
 
1643
<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-docstring">        hello</tt> </tt>
 
1644
<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.elements('a[u:v=$]')[0].xml()</tt> </tt>
 
1645
<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;a id="1-1" u:v="$"&gt;hello&lt;/a&gt;'</tt> </tt>
 
1646
<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1647
<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=FORM( INPUT(_type='text'), SELECT(range(1)), TEXTAREA() )</tt> </tt>
 
1648
<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; for c in a.elements('input, select, textarea'): c['_disabled'] = 'disabled'</tt> </tt>
 
1649
<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a.xml()</tt> </tt>
 
1650
<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;form action="" enctype="multipart/form-data" method="post"&gt;&lt;input disabled="disabled" type="text" /&gt;&lt;select disabled="disabled"&gt;&lt;option value="0"&gt;0&lt;/option&gt;&lt;/select&gt;&lt;textarea cols="40" disabled="disabled" rows="10"&gt;&lt;/textarea&gt;&lt;/form&gt;'</tt> </tt>
 
1651
<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1652
<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-141" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-141', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
 
1653
<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">            <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-142" 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-142', 'strip', 'link-142');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</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-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
 
1654
<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-143" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-143', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
 
1655
<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">            <tt class="py-name">subset</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Method web2py.gluon.html.DIV.elements()=web2py.gluon.html.DIV-class.html#elements,Method web2py.gluon.html.MARKMIN.elements()=web2py.gluon.html.MARKMIN-class.html#elements,Method web2py.gluon.html.XML.elements()=web2py.gluon.html.XML-class.html#elements"><a title="web2py.gluon.html.DIV.elements
 
1656
web2py.gluon.html.MARKMIN.elements
 
1657
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-144', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">]</tt> </tt>
 
1658
<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt><tt id="link-145" class="py-name" targets="Function web2py.gluon.rocket.b()=web2py.gluon.rocket-module.html#b"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-145', 'b', 'link-145');">b</a></tt><tt class="py-op">:</tt><tt class="py-name">a</tt><tt class="py-op">+</tt><tt id="link-146" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-146', 'b', 'link-145');">b</a></tt><tt class="py-op">,</tt><tt class="py-name">subset</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
1659
<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-147" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-147', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
 
1660
<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">            <tt class="py-name">items</tt> <tt class="py-op">=</tt> <tt class="py-name">args</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-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
1661
<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-148" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-148', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">items</tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
 
1662
<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">                <tt class="py-name">subset</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1663
web2py.gluon.html.MARKMIN.elements
 
1664
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-149', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="web2py.gluon.html.join
 
1665
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-150', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-name">items</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-op">)</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1666
web2py.gluon.html.MARKMIN.elements
 
1667
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-151', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt><tt class="py-name">items</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-op">]</tt> </tt>
 
1668
<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt><tt id="link-152" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-152', 'b', 'link-145');">b</a></tt><tt class="py-op">:</tt><tt class="py-name">a</tt><tt class="py-op">+</tt><tt id="link-153" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-153', 'b', 'link-145');">b</a></tt><tt class="py-op">,</tt><tt class="py-name">subset</tt><tt class="py-op">,</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
1669
<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1670
<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">                <tt class="py-name">item</tt><tt class="py-op">=</tt><tt class="py-name">items</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
1671
<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">'#'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'['</tt> <tt class="py-keyword">in</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
 
1672
<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">                    <tt class="py-name">match_tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="web2py.gluon.html.DIV.regex_tag" class="py-name" href="#" onclick="return doclink('link-154', 'regex_tag', 'link-137');">regex_tag</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-155', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
 
1673
<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">                    <tt class="py-name">match_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="web2py.gluon.html.DIV.regex_id" class="py-name" href="#" onclick="return doclink('link-156', 'regex_id', 'link-138');">regex_id</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-157', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
 
1674
<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">                    <tt class="py-name">match_class</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="web2py.gluon.html.DIV.regex_class" class="py-name" href="#" onclick="return doclink('link-158', 'regex_class', 'link-139');">regex_class</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-159', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
 
1675
<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">                    <tt class="py-name">match_attr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="web2py.gluon.html.DIV.regex_attr" class="py-name" href="#" onclick="return doclink('link-160', 'regex_attr', 'link-140');">regex_attr</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
 
1676
<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">                    <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
1677
<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_tag</tt><tt class="py-op">:</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">match_tag</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
 
1678
<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_id</tt><tt class="py-op">:</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_id'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">match_id</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
 
1679
<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">match_class</tt><tt class="py-op">:</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'(?&lt;!\w)%s(?!\w)'</tt> <tt class="py-op">%</tt> \ </tt>
 
1680
<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">                       <tt class="py-name">match_class</tt><tt class="py-op">.</tt><tt class="py-name">group</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-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">,</tt><tt class="py-string">'\\-'</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">'\\:'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
1681
<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">match_attr</tt><tt class="py-op">:</tt> </tt>
 
1682
<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">                        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">group</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-op">=</tt><tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
 
1683
<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1684
web2py.gluon.html.MARKMIN.elements
 
1685
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-161', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
 
1686
<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-comment"># make a copy of the components</tt> </tt>
 
1687
<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
1688
<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">        <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1689
<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"first_only"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1690
<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">            <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
 
1691
<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
 
1692
<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">        <tt class="py-comment"># check if the component has an attribute with the same</tt> </tt>
 
1693
<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># value as provided</tt> </tt>
 
1694
<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
1695
<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">        <tt id="link-162" class="py-name"><a title="web2py.gluon.html.A.tag
 
1696
web2py.gluon.html.B.tag
 
1697
web2py.gluon.html.BEAUTIFY.tag
 
1698
web2py.gluon.html.BODY.tag
 
1699
web2py.gluon.html.BR.tag
 
1700
web2py.gluon.html.BUTTON.tag
 
1701
web2py.gluon.html.CAT.tag
 
1702
web2py.gluon.html.CENTER.tag
 
1703
web2py.gluon.html.COL.tag
 
1704
web2py.gluon.html.COLGROUP.tag
 
1705
web2py.gluon.html.DIV.tag
 
1706
web2py.gluon.html.EM.tag
 
1707
web2py.gluon.html.EMBED.tag
 
1708
web2py.gluon.html.FIELDSET.tag
 
1709
web2py.gluon.html.FORM.tag
 
1710
web2py.gluon.html.H1.tag
 
1711
web2py.gluon.html.H2.tag
 
1712
web2py.gluon.html.H3.tag
 
1713
web2py.gluon.html.H4.tag
 
1714
web2py.gluon.html.H5.tag
 
1715
web2py.gluon.html.H6.tag
 
1716
web2py.gluon.html.HEAD.tag
 
1717
web2py.gluon.html.HR.tag
 
1718
web2py.gluon.html.HTML.tag
 
1719
web2py.gluon.html.I.tag
 
1720
web2py.gluon.html.IFRAME.tag
 
1721
web2py.gluon.html.IMG.tag
 
1722
web2py.gluon.html.INPUT.tag
 
1723
web2py.gluon.html.LABEL.tag
 
1724
web2py.gluon.html.LEGEND.tag
 
1725
web2py.gluon.html.LI.tag
 
1726
web2py.gluon.html.LINK.tag
 
1727
web2py.gluon.html.MENU.tag
 
1728
web2py.gluon.html.META.tag
 
1729
web2py.gluon.html.OBJECT.tag
 
1730
web2py.gluon.html.OL.tag
 
1731
web2py.gluon.html.OPTGROUP.tag
 
1732
web2py.gluon.html.OPTION.tag
 
1733
web2py.gluon.html.P.tag
 
1734
web2py.gluon.html.PRE.tag
 
1735
web2py.gluon.html.SCRIPT.tag
 
1736
web2py.gluon.html.SELECT.tag
 
1737
web2py.gluon.html.SPAN.tag
 
1738
web2py.gluon.html.STYLE.tag
 
1739
web2py.gluon.html.TABLE.tag
 
1740
web2py.gluon.html.TBODY.tag
 
1741
web2py.gluon.html.TD.tag
 
1742
web2py.gluon.html.TEXTAREA.tag
 
1743
web2py.gluon.html.TFOOT.tag
 
1744
web2py.gluon.html.TH.tag
 
1745
web2py.gluon.html.THEAD.tag
 
1746
web2py.gluon.html.TITLE.tag
 
1747
web2py.gluon.html.TR.tag
 
1748
web2py.gluon.html.TT.tag
 
1749
web2py.gluon.html.UL.tag
 
1750
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-162', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'tag'</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">""</tt><tt class="py-op">)</tt> </tt>
 
1751
<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt id="link-163" class="py-name"><a title="web2py.gluon.html.A.tag
 
1752
web2py.gluon.html.B.tag
 
1753
web2py.gluon.html.BEAUTIFY.tag
 
1754
web2py.gluon.html.BODY.tag
 
1755
web2py.gluon.html.BR.tag
 
1756
web2py.gluon.html.BUTTON.tag
 
1757
web2py.gluon.html.CAT.tag
 
1758
web2py.gluon.html.CENTER.tag
 
1759
web2py.gluon.html.COL.tag
 
1760
web2py.gluon.html.COLGROUP.tag
 
1761
web2py.gluon.html.DIV.tag
 
1762
web2py.gluon.html.EM.tag
 
1763
web2py.gluon.html.EMBED.tag
 
1764
web2py.gluon.html.FIELDSET.tag
 
1765
web2py.gluon.html.FORM.tag
 
1766
web2py.gluon.html.H1.tag
 
1767
web2py.gluon.html.H2.tag
 
1768
web2py.gluon.html.H3.tag
 
1769
web2py.gluon.html.H4.tag
 
1770
web2py.gluon.html.H5.tag
 
1771
web2py.gluon.html.H6.tag
 
1772
web2py.gluon.html.HEAD.tag
 
1773
web2py.gluon.html.HR.tag
 
1774
web2py.gluon.html.HTML.tag
 
1775
web2py.gluon.html.I.tag
 
1776
web2py.gluon.html.IFRAME.tag
 
1777
web2py.gluon.html.IMG.tag
 
1778
web2py.gluon.html.INPUT.tag
 
1779
web2py.gluon.html.LABEL.tag
 
1780
web2py.gluon.html.LEGEND.tag
 
1781
web2py.gluon.html.LI.tag
 
1782
web2py.gluon.html.LINK.tag
 
1783
web2py.gluon.html.MENU.tag
 
1784
web2py.gluon.html.META.tag
 
1785
web2py.gluon.html.OBJECT.tag
 
1786
web2py.gluon.html.OL.tag
 
1787
web2py.gluon.html.OPTGROUP.tag
 
1788
web2py.gluon.html.OPTION.tag
 
1789
web2py.gluon.html.P.tag
 
1790
web2py.gluon.html.PRE.tag
 
1791
web2py.gluon.html.SCRIPT.tag
 
1792
web2py.gluon.html.SELECT.tag
 
1793
web2py.gluon.html.SPAN.tag
 
1794
web2py.gluon.html.STYLE.tag
 
1795
web2py.gluon.html.TABLE.tag
 
1796
web2py.gluon.html.TBODY.tag
 
1797
web2py.gluon.html.TD.tag
 
1798
web2py.gluon.html.TEXTAREA.tag
 
1799
web2py.gluon.html.TFOOT.tag
 
1800
web2py.gluon.html.TH.tag
 
1801
web2py.gluon.html.THEAD.tag
 
1802
web2py.gluon.html.TITLE.tag
 
1803
web2py.gluon.html.TR.tag
 
1804
web2py.gluon.html.TT.tag
 
1805
web2py.gluon.html.UL.tag
 
1806
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-163', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt>
 
1807
<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">            <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1808
<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1809
<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1810
<a name="L933"></a><tt class="py-lineno"> 933</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">key</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1811
<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">                    <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1812
<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
1813
<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-164', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1814
<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">                    <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1815
<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1816
<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1817
<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'find'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">:</tt> </tt>
 
1818
<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">            <tt id="link-165" class="py-name" targets="Method web2py.gluon.dal.Rows.find()=web2py.gluon.dal.Rows-class.html#find"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-165', 'find', 'link-165');">find</a></tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'find'</tt><tt class="py-op">]</tt> </tt>
 
1819
<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
1820
<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-166" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-166', 'find', 'link-165');">find</a></tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1821
<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-167" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-167', 'find', 'link-165');">find</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
 
1822
<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
1823
<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
1824
<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt id="link-168" class="py-name"><a title="web2py.gluon.dal.Rows.find" class="py-name" href="#" onclick="return doclink('link-168', 'find', 'link-165');">find</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="web2py.gluon.tools.Crud.search" class="py-name" href="#" onclick="return doclink('link-169', 'search', 'link-45');">search</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1825
<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
1826
<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">        <tt class="py-comment"># if found, return the component</tt> </tt>
 
1827
<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">check</tt><tt class="py-op">:</tt> </tt>
 
1828
<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">            <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="web2py.gluon.html.DIV.append
1804
1829
web2py.gluon.template.BlockNode.append
1805
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-178', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
1806
 
<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt><tt class="py-op">:</tt> </tt>
1807
 
<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
1808
 
<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">        <tt class="py-comment"># loop the copy</tt> </tt>
1809
 
<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
1810
 
<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-179" class="py-name"><a title="web2py.gluon.html.XmlComponent" class="py-name" href="#" onclick="return doclink('link-179', 'XmlComponent', 'link-126');">XmlComponent</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1811
 
<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">                <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">first_only</tt> </tt>
1812
 
<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">                <tt class="py-name">child_matches</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1830
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-170', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
1831
<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt><tt class="py-op">:</tt> </tt>
 
1832
<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
 
1833
<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">        <tt class="py-comment"># loop the copy</tt> </tt>
 
1834
<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
1835
<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-171" class="py-name"><a title="web2py.gluon.html.XmlComponent" class="py-name" href="#" onclick="return doclink('link-171', 'XmlComponent', 'link-125');">XmlComponent</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1836
<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">first_only</tt> </tt>
 
1837
<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">                <tt class="py-name">child_matches</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="web2py.gluon.html.DIV.elements
1813
1838
web2py.gluon.html.MARKMIN.elements
1814
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-180', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt>  <tt class="py-op">**</tt><tt class="py-name">kargs</tt> <tt class="py-op">)</tt> </tt>
1815
 
<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt>  <tt class="py-keyword">and</tt> <tt id="link-181" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-181', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">child_matches</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
1816
 
<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">child_matches</tt> </tt>
1817
 
<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">                <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method web2py.gluon.template.BlockNode.extend()=web2py.gluon.template.BlockNode-class.html#extend,Method web2py.gluon.template.Content.extend()=web2py.gluon.template.Content-class.html#extend,Method web2py.gluon.template.TemplateParser.extend()=web2py.gluon.template.TemplateParser-class.html#extend"><a title="web2py.gluon.template.BlockNode.extend
 
1839
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-172', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt>  <tt class="py-op">**</tt><tt class="py-name">kargs</tt> <tt class="py-op">)</tt> </tt>
 
1840
<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt>  <tt class="py-keyword">and</tt> <tt id="link-173" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-173', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">child_matches</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 
1841
<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">child_matches</tt> </tt>
 
1842
<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">                <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Method web2py.gluon.template.BlockNode.extend()=web2py.gluon.template.BlockNode-class.html#extend,Method web2py.gluon.template.Content.extend()=web2py.gluon.template.Content-class.html#extend,Method web2py.gluon.template.TemplateParser.extend()=web2py.gluon.template.TemplateParser-class.html#extend"><a title="web2py.gluon.template.BlockNode.extend
1818
1843
web2py.gluon.template.Content.extend
1819
 
web2py.gluon.template.TemplateParser.extend" class="py-name" href="#" onclick="return doclink('link-182', 'extend', 'link-182');">extend</a></tt><tt class="py-op">(</tt> <tt class="py-name">child_matches</tt> <tt class="py-op">)</tt> </tt>
1820
 
<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
1821
 
</div><a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
1822
 
<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"> </tt>
1823
 
<a name="DIV.element"></a><div id="DIV.element-def"><a name="L948"></a><tt class="py-lineno"> 948</tt> <a class="py-toggle" href="#" id="DIV.element-toggle" onclick="return toggle('DIV.element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#element">element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1824
 
</div><div id="DIV.element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.element-expanded"><a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1825
 
<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-docstring">        find the first component that matches the supplied attribute dictionary,</tt> </tt>
1826
 
<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-docstring">        or None if nothing could be found</tt> </tt>
1827
 
<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
1828
 
<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"><tt class="py-docstring">        Also the components of the components are searched.</tt> </tt>
1829
 
<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1830
 
<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1831
 
<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">        <tt id="link-183" class="py-name"><a title="web2py.gluon.html.DIV.elements
1832
 
web2py.gluon.html.MARKMIN.elements
1833
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-183', 'elements', 'link-145');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="web2py.gluon.html.DIV.elements
1834
 
web2py.gluon.html.MARKMIN.elements
1835
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-184', 'elements', 'link-145');">elements</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
1836
 
<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-185" class="py-name"><a title="web2py.gluon.html.DIV.elements
1837
 
web2py.gluon.html.MARKMIN.elements
1838
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-185', 'elements', 'link-145');">elements</a></tt><tt class="py-op">:</tt> </tt>
1839
 
<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">            <tt class="py-comment"># we found nothing</tt> </tt>
1840
 
<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
1841
 
<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-186" class="py-name"><a title="web2py.gluon.html.DIV.elements
1842
 
web2py.gluon.html.MARKMIN.elements
1843
 
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-186', 'elements', 'link-145');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
1844
 
</div><a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"> </tt>
1845
 
<a name="DIV.siblings"></a><div id="DIV.siblings-def"><a name="L962"></a><tt class="py-lineno"> 962</tt> <a class="py-toggle" href="#" id="DIV.siblings-toggle" onclick="return toggle('DIV.siblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#siblings">siblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1846
 
</div><div id="DIV.siblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.siblings-expanded"><a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1847
 
<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-docstring">        find all sibling components that match the supplied argument list</tt> </tt>
1848
 
<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-docstring">        and attribute dictionary, or None if nothing could be found</tt> </tt>
1849
 
<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1850
 
<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">        <tt class="py-name">sibs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-187" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-187', 's', 'link-127');">s</a></tt> <tt class="py-keyword">for</tt> <tt id="link-188" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-188', 's', 'link-127');">s</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-189" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-189', 's', 'link-127');">s</a></tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
1851
 
<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">        <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
1852
 
<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1853
 
<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="web2py.gluon.rocket.Headers.has_key" class="py-name" href="#" onclick="return doclink('link-190', 'has_key', 'link-28');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">"first_only"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1854
 
<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">            <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
1855
 
<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
1856
 
<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sibs</tt><tt class="py-op">:</tt> </tt>
1857
 
<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
1858
 
<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">                <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1859
 
<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">                <tt id="link-191" class="py-name"><a title="web2py.gluon.html.A.tag
1860
 
web2py.gluon.html.B.tag
1861
 
web2py.gluon.html.BEAUTIFY.tag
1862
 
web2py.gluon.html.BODY.tag
1863
 
web2py.gluon.html.BR.tag
1864
 
web2py.gluon.html.BUTTON.tag
1865
 
web2py.gluon.html.CAT.tag
1866
 
web2py.gluon.html.CENTER.tag
1867
 
web2py.gluon.html.COL.tag
1868
 
web2py.gluon.html.COLGROUP.tag
1869
 
web2py.gluon.html.DIV.tag
1870
 
web2py.gluon.html.EM.tag
1871
 
web2py.gluon.html.EMBED.tag
1872
 
web2py.gluon.html.FIELDSET.tag
1873
 
web2py.gluon.html.FORM.tag
1874
 
web2py.gluon.html.H1.tag
1875
 
web2py.gluon.html.H2.tag
1876
 
web2py.gluon.html.H3.tag
1877
 
web2py.gluon.html.H4.tag
1878
 
web2py.gluon.html.H5.tag
1879
 
web2py.gluon.html.H6.tag
1880
 
web2py.gluon.html.HEAD.tag
1881
 
web2py.gluon.html.HR.tag
1882
 
web2py.gluon.html.HTML.tag
1883
 
web2py.gluon.html.I.tag
1884
 
web2py.gluon.html.IFRAME.tag
1885
 
web2py.gluon.html.IMG.tag
1886
 
web2py.gluon.html.INPUT.tag
1887
 
web2py.gluon.html.LABEL.tag
1888
 
web2py.gluon.html.LEGEND.tag
1889
 
web2py.gluon.html.LI.tag
1890
 
web2py.gluon.html.LINK.tag
1891
 
web2py.gluon.html.MENU.tag
1892
 
web2py.gluon.html.META.tag
1893
 
web2py.gluon.html.OBJECT.tag
1894
 
web2py.gluon.html.OL.tag
1895
 
web2py.gluon.html.OPTGROUP.tag
1896
 
web2py.gluon.html.OPTION.tag
1897
 
web2py.gluon.html.P.tag
1898
 
web2py.gluon.html.PRE.tag
1899
 
web2py.gluon.html.SCRIPT.tag
1900
 
web2py.gluon.html.SELECT.tag
1901
 
web2py.gluon.html.SPAN.tag
1902
 
web2py.gluon.html.STYLE.tag
1903
 
web2py.gluon.html.TABLE.tag
1904
 
web2py.gluon.html.TBODY.tag
1905
 
web2py.gluon.html.TD.tag
1906
 
web2py.gluon.html.TEXTAREA.tag
1907
 
web2py.gluon.html.TFOOT.tag
1908
 
web2py.gluon.html.TH.tag
1909
 
web2py.gluon.html.THEAD.tag
1910
 
web2py.gluon.html.TITLE.tag
1911
 
web2py.gluon.html.TR.tag
1912
 
web2py.gluon.html.TT.tag
1913
 
web2py.gluon.html.UL.tag
1914
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-191', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'tag'</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">""</tt><tt class="py-op">)</tt> </tt>
1915
 
<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt id="link-192" class="py-name"><a title="web2py.gluon.html.A.tag
1916
 
web2py.gluon.html.B.tag
1917
 
web2py.gluon.html.BEAUTIFY.tag
1918
 
web2py.gluon.html.BODY.tag
1919
 
web2py.gluon.html.BR.tag
1920
 
web2py.gluon.html.BUTTON.tag
1921
 
web2py.gluon.html.CAT.tag
1922
 
web2py.gluon.html.CENTER.tag
1923
 
web2py.gluon.html.COL.tag
1924
 
web2py.gluon.html.COLGROUP.tag
1925
 
web2py.gluon.html.DIV.tag
1926
 
web2py.gluon.html.EM.tag
1927
 
web2py.gluon.html.EMBED.tag
1928
 
web2py.gluon.html.FIELDSET.tag
1929
 
web2py.gluon.html.FORM.tag
1930
 
web2py.gluon.html.H1.tag
1931
 
web2py.gluon.html.H2.tag
1932
 
web2py.gluon.html.H3.tag
1933
 
web2py.gluon.html.H4.tag
1934
 
web2py.gluon.html.H5.tag
1935
 
web2py.gluon.html.H6.tag
1936
 
web2py.gluon.html.HEAD.tag
1937
 
web2py.gluon.html.HR.tag
1938
 
web2py.gluon.html.HTML.tag
1939
 
web2py.gluon.html.I.tag
1940
 
web2py.gluon.html.IFRAME.tag
1941
 
web2py.gluon.html.IMG.tag
1942
 
web2py.gluon.html.INPUT.tag
1943
 
web2py.gluon.html.LABEL.tag
1944
 
web2py.gluon.html.LEGEND.tag
1945
 
web2py.gluon.html.LI.tag
1946
 
web2py.gluon.html.LINK.tag
1947
 
web2py.gluon.html.MENU.tag
1948
 
web2py.gluon.html.META.tag
1949
 
web2py.gluon.html.OBJECT.tag
1950
 
web2py.gluon.html.OL.tag
1951
 
web2py.gluon.html.OPTGROUP.tag
1952
 
web2py.gluon.html.OPTION.tag
1953
 
web2py.gluon.html.P.tag
1954
 
web2py.gluon.html.PRE.tag
1955
 
web2py.gluon.html.SCRIPT.tag
1956
 
web2py.gluon.html.SELECT.tag
1957
 
web2py.gluon.html.SPAN.tag
1958
 
web2py.gluon.html.STYLE.tag
1959
 
web2py.gluon.html.TABLE.tag
1960
 
web2py.gluon.html.TBODY.tag
1961
 
web2py.gluon.html.TD.tag
1962
 
web2py.gluon.html.TEXTAREA.tag
1963
 
web2py.gluon.html.TFOOT.tag
1964
 
web2py.gluon.html.TH.tag
1965
 
web2py.gluon.html.THEAD.tag
1966
 
web2py.gluon.html.TITLE.tag
1967
 
web2py.gluon.html.TR.tag
1968
 
web2py.gluon.html.TT.tag
1969
 
web2py.gluon.html.UL.tag
1970
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-192', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt>
1971
 
<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1972
 
<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-193', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1973
 
<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
1974
 
<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">                            <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
1975
 
<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">check</tt><tt class="py-op">:</tt> </tt>
1976
 
<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">                    <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="web2py.gluon.html.DIV.append
 
1844
web2py.gluon.template.TemplateParser.extend" class="py-name" href="#" onclick="return doclink('link-174', 'extend', 'link-174');">extend</a></tt><tt class="py-op">(</tt> <tt class="py-name">child_matches</tt> <tt class="py-op">)</tt> </tt>
 
1845
<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
 
1846
</div><a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"> </tt>
 
1847
<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"> </tt>
 
1848
<a name="DIV.element"></a><div id="DIV.element-def"><a name="L965"></a><tt class="py-lineno"> 965</tt> <a class="py-toggle" href="#" id="DIV.element-toggle" onclick="return toggle('DIV.element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#element">element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1849
</div><div id="DIV.element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.element-expanded"><a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1850
<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-docstring">        find the first component that matches the supplied attribute dictionary,</tt> </tt>
 
1851
<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"><tt class="py-docstring">        or None if nothing could be found</tt> </tt>
 
1852
<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
1853
<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"><tt class="py-docstring">        Also the components of the components are searched.</tt> </tt>
 
1854
<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1855
<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
1856
<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt id="link-175" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1857
web2py.gluon.html.MARKMIN.elements
 
1858
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-175', 'elements', 'link-144');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1859
web2py.gluon.html.MARKMIN.elements
 
1860
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-176', 'elements', 'link-144');">elements</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
 
1861
<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-177" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1862
web2py.gluon.html.MARKMIN.elements
 
1863
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-177', 'elements', 'link-144');">elements</a></tt><tt class="py-op">:</tt> </tt>
 
1864
<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">            <tt class="py-comment"># we found nothing</tt> </tt>
 
1865
<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
1866
<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-178" class="py-name"><a title="web2py.gluon.html.DIV.elements
 
1867
web2py.gluon.html.MARKMIN.elements
 
1868
web2py.gluon.html.XML.elements" class="py-name" href="#" onclick="return doclink('link-178', 'elements', 'link-144');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
1869
</div><a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"> </tt>
 
1870
<a name="DIV.siblings"></a><div id="DIV.siblings-def"><a name="L979"></a><tt class="py-lineno"> 979</tt> <a class="py-toggle" href="#" id="DIV.siblings-toggle" onclick="return toggle('DIV.siblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#siblings">siblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1871
</div><div id="DIV.siblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.siblings-expanded"><a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
1872
<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-docstring">        find all sibling components that match the supplied argument list</tt> </tt>
 
1873
<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-docstring">        and attribute dictionary, or None if nothing could be found</tt> </tt>
 
1874
<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
1875
<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">        <tt class="py-name">sibs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-179" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-179', 's', 'link-126');">s</a></tt> <tt class="py-keyword">for</tt> <tt id="link-180" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-180', 's', 'link-126');">s</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-181" class="py-name"><a title="web2py.gluon.languages.lazyT.s" class="py-name" href="#" onclick="return doclink('link-181', 's', 'link-126');">s</a></tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">]</tt> </tt>
 
1876
<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
1877
<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">        <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1878
<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"first_only"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1879
<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">            <tt class="py-name">first_only</tt> <tt class="py-op">=</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
 
1880
<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">"first_only"</tt><tt class="py-op">]</tt> </tt>
 
1881
<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sibs</tt><tt class="py-op">:</tt> </tt>
 
1882
<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
1883
<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">                <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
1884
<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                <tt id="link-182" class="py-name"><a title="web2py.gluon.html.A.tag
 
1885
web2py.gluon.html.B.tag
 
1886
web2py.gluon.html.BEAUTIFY.tag
 
1887
web2py.gluon.html.BODY.tag
 
1888
web2py.gluon.html.BR.tag
 
1889
web2py.gluon.html.BUTTON.tag
 
1890
web2py.gluon.html.CAT.tag
 
1891
web2py.gluon.html.CENTER.tag
 
1892
web2py.gluon.html.COL.tag
 
1893
web2py.gluon.html.COLGROUP.tag
 
1894
web2py.gluon.html.DIV.tag
 
1895
web2py.gluon.html.EM.tag
 
1896
web2py.gluon.html.EMBED.tag
 
1897
web2py.gluon.html.FIELDSET.tag
 
1898
web2py.gluon.html.FORM.tag
 
1899
web2py.gluon.html.H1.tag
 
1900
web2py.gluon.html.H2.tag
 
1901
web2py.gluon.html.H3.tag
 
1902
web2py.gluon.html.H4.tag
 
1903
web2py.gluon.html.H5.tag
 
1904
web2py.gluon.html.H6.tag
 
1905
web2py.gluon.html.HEAD.tag
 
1906
web2py.gluon.html.HR.tag
 
1907
web2py.gluon.html.HTML.tag
 
1908
web2py.gluon.html.I.tag
 
1909
web2py.gluon.html.IFRAME.tag
 
1910
web2py.gluon.html.IMG.tag
 
1911
web2py.gluon.html.INPUT.tag
 
1912
web2py.gluon.html.LABEL.tag
 
1913
web2py.gluon.html.LEGEND.tag
 
1914
web2py.gluon.html.LI.tag
 
1915
web2py.gluon.html.LINK.tag
 
1916
web2py.gluon.html.MENU.tag
 
1917
web2py.gluon.html.META.tag
 
1918
web2py.gluon.html.OBJECT.tag
 
1919
web2py.gluon.html.OL.tag
 
1920
web2py.gluon.html.OPTGROUP.tag
 
1921
web2py.gluon.html.OPTION.tag
 
1922
web2py.gluon.html.P.tag
 
1923
web2py.gluon.html.PRE.tag
 
1924
web2py.gluon.html.SCRIPT.tag
 
1925
web2py.gluon.html.SELECT.tag
 
1926
web2py.gluon.html.SPAN.tag
 
1927
web2py.gluon.html.STYLE.tag
 
1928
web2py.gluon.html.TABLE.tag
 
1929
web2py.gluon.html.TBODY.tag
 
1930
web2py.gluon.html.TD.tag
 
1931
web2py.gluon.html.TEXTAREA.tag
 
1932
web2py.gluon.html.TFOOT.tag
 
1933
web2py.gluon.html.TH.tag
 
1934
web2py.gluon.html.THEAD.tag
 
1935
web2py.gluon.html.TITLE.tag
 
1936
web2py.gluon.html.TR.tag
 
1937
web2py.gluon.html.TT.tag
 
1938
web2py.gluon.html.UL.tag
 
1939
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-182', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'tag'</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">""</tt><tt class="py-op">)</tt> </tt>
 
1940
<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">and</tt> <tt id="link-183" class="py-name"><a title="web2py.gluon.html.A.tag
 
1941
web2py.gluon.html.B.tag
 
1942
web2py.gluon.html.BEAUTIFY.tag
 
1943
web2py.gluon.html.BODY.tag
 
1944
web2py.gluon.html.BR.tag
 
1945
web2py.gluon.html.BUTTON.tag
 
1946
web2py.gluon.html.CAT.tag
 
1947
web2py.gluon.html.CENTER.tag
 
1948
web2py.gluon.html.COL.tag
 
1949
web2py.gluon.html.COLGROUP.tag
 
1950
web2py.gluon.html.DIV.tag
 
1951
web2py.gluon.html.EM.tag
 
1952
web2py.gluon.html.EMBED.tag
 
1953
web2py.gluon.html.FIELDSET.tag
 
1954
web2py.gluon.html.FORM.tag
 
1955
web2py.gluon.html.H1.tag
 
1956
web2py.gluon.html.H2.tag
 
1957
web2py.gluon.html.H3.tag
 
1958
web2py.gluon.html.H4.tag
 
1959
web2py.gluon.html.H5.tag
 
1960
web2py.gluon.html.H6.tag
 
1961
web2py.gluon.html.HEAD.tag
 
1962
web2py.gluon.html.HR.tag
 
1963
web2py.gluon.html.HTML.tag
 
1964
web2py.gluon.html.I.tag
 
1965
web2py.gluon.html.IFRAME.tag
 
1966
web2py.gluon.html.IMG.tag
 
1967
web2py.gluon.html.INPUT.tag
 
1968
web2py.gluon.html.LABEL.tag
 
1969
web2py.gluon.html.LEGEND.tag
 
1970
web2py.gluon.html.LI.tag
 
1971
web2py.gluon.html.LINK.tag
 
1972
web2py.gluon.html.MENU.tag
 
1973
web2py.gluon.html.META.tag
 
1974
web2py.gluon.html.OBJECT.tag
 
1975
web2py.gluon.html.OL.tag
 
1976
web2py.gluon.html.OPTGROUP.tag
 
1977
web2py.gluon.html.OPTION.tag
 
1978
web2py.gluon.html.P.tag
 
1979
web2py.gluon.html.PRE.tag
 
1980
web2py.gluon.html.SCRIPT.tag
 
1981
web2py.gluon.html.SELECT.tag
 
1982
web2py.gluon.html.SPAN.tag
 
1983
web2py.gluon.html.STYLE.tag
 
1984
web2py.gluon.html.TABLE.tag
 
1985
web2py.gluon.html.TBODY.tag
 
1986
web2py.gluon.html.TD.tag
 
1987
web2py.gluon.html.TEXTAREA.tag
 
1988
web2py.gluon.html.TFOOT.tag
 
1989
web2py.gluon.html.TH.tag
 
1990
web2py.gluon.html.THEAD.tag
 
1991
web2py.gluon.html.TITLE.tag
 
1992
web2py.gluon.html.TR.tag
 
1993
web2py.gluon.html.TT.tag
 
1994
web2py.gluon.html.UL.tag
 
1995
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-183', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt>
 
1996
<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">                        <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
1997
<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kargs</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
1998
<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
 
1999
<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">                            <tt class="py-name">check</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
2000
<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">check</tt><tt class="py-op">:</tt> </tt>
 
2001
<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                    <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="web2py.gluon.html.DIV.append
1977
2002
web2py.gluon.template.BlockNode.append
1978
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-194', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
1979
 
<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
1980
 
<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
1981
 
<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
1982
 
<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
1983
 
</div><a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"> </tt>
1984
 
<a name="DIV.sibling"></a><div id="DIV.sibling-def"><a name="L989"></a><tt class="py-lineno"> 989</tt> <a class="py-toggle" href="#" id="DIV.sibling-toggle" onclick="return toggle('DIV.sibling');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#sibling">sibling</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1985
 
</div><div id="DIV.sibling-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.sibling-expanded"><a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
1986
 
<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line"><tt class="py-docstring">        find the first sibling component that match the supplied argument list</tt> </tt>
1987
 
<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"><tt class="py-docstring">        and attribute dictionary, or None if nothing could be found</tt> </tt>
1988
 
<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
1989
 
<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
1990
 
<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">        <tt class="py-name">sibs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name" targets="Method web2py.gluon.html.DIV.siblings()=web2py.gluon.html.DIV-class.html#siblings"><a title="web2py.gluon.html.DIV.siblings" class="py-name" href="#" onclick="return doclink('link-195', 'siblings', 'link-195');">siblings</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
1991
 
<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sibs</tt><tt class="py-op">:</tt> </tt>
1992
 
<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
1993
 
<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">sibs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
1994
 
</div></div><a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line"> </tt>
1995
 
<a name="CAT"></a><div id="CAT-def"><a name="L1000"></a><tt class="py-lineno">1000</tt> <a class="py-toggle" href="#" id="CAT-toggle" onclick="return toggle('CAT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CAT-class.html">CAT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
1996
 
</div><div id="CAT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CAT-expanded"><a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">     </tt>
1997
 
<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">    <tt id="link-196" class="py-name"><a title="web2py.gluon.html.A.tag
 
2003
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-184', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
2004
<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">first_only</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
 
2005
<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
2006
<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
 
2007
<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">matches</tt> </tt>
 
2008
</div><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line"> </tt>
 
2009
<a name="DIV.sibling"></a><div id="DIV.sibling-def"><a name="L1006"></a><tt class="py-lineno">1006</tt> <a class="py-toggle" href="#" id="DIV.sibling-toggle" onclick="return toggle('DIV.sibling');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.DIV-class.html#sibling">sibling</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2010
</div><div id="DIV.sibling-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DIV.sibling-expanded"><a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
2011
<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"><tt class="py-docstring">        find the first sibling component that match the supplied argument list</tt> </tt>
 
2012
<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"><tt class="py-docstring">        and attribute dictionary, or None if nothing could be found</tt> </tt>
 
2013
<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
2014
<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">        <tt class="py-name">kargs</tt><tt class="py-op">[</tt><tt class="py-string">'first_only'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
2015
<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">        <tt class="py-name">sibs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name" targets="Method web2py.gluon.html.DIV.siblings()=web2py.gluon.html.DIV-class.html#siblings"><a title="web2py.gluon.html.DIV.siblings" class="py-name" href="#" onclick="return doclink('link-185', 'siblings', 'link-185');">siblings</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kargs</tt><tt class="py-op">)</tt> </tt>
 
2016
<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sibs</tt><tt class="py-op">:</tt> </tt>
 
2017
<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
2018
<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">sibs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
2019
</div></div><a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"> </tt>
 
2020
<a name="CAT"></a><div id="CAT-def"><a name="L1017"></a><tt class="py-lineno">1017</tt> <a class="py-toggle" href="#" id="CAT-toggle" onclick="return toggle('CAT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CAT-class.html">CAT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2021
</div><div id="CAT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CAT-expanded"><a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
 
2022
<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">    <tt id="link-186" class="py-name"><a title="web2py.gluon.html.A.tag
1998
2023
web2py.gluon.html.B.tag
1999
2024
web2py.gluon.html.BEAUTIFY.tag
2000
2025
web2py.gluon.html.BODY.tag
2049
2074
web2py.gluon.html.TR.tag
2050
2075
web2py.gluon.html.TT.tag
2051
2076
web2py.gluon.html.UL.tag
2052
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-196', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
2053
 
</div><a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
2054
 
<a name="TAG_unpickler"></a><div id="TAG_unpickler-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="TAG_unpickler-toggle" onclick="return toggle('TAG_unpickler');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#TAG_unpickler">TAG_unpickler</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2055
 
</div><div id="TAG_unpickler-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TAG_unpickler-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">cPickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
2056
 
</div><a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line"> </tt>
2057
 
<a name="TAG_pickler"></a><div id="TAG_pickler-def"><a name="L1007"></a><tt class="py-lineno">1007</tt> <a class="py-toggle" href="#" id="TAG_pickler-toggle" onclick="return toggle('TAG_pickler');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#TAG_pickler">TAG_pickler</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2058
 
</div><div id="TAG_pickler-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TAG_pickler-expanded"><a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
2077
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-186', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
2078
</div><a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"> </tt>
 
2079
<a name="TAG_unpickler"></a><div id="TAG_unpickler-def"><a name="L1021"></a><tt class="py-lineno">1021</tt> <a class="py-toggle" href="#" id="TAG_unpickler-toggle" onclick="return toggle('TAG_unpickler');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#TAG_unpickler">TAG_unpickler</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2080
</div><div id="TAG_unpickler-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TAG_unpickler-expanded"><a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">cPickle</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
2081
</div><a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"> </tt>
 
2082
<a name="TAG_pickler"></a><div id="TAG_pickler-def"><a name="L1024"></a><tt class="py-lineno">1024</tt> <a class="py-toggle" href="#" id="TAG_pickler-toggle" onclick="return toggle('TAG_pickler');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#TAG_pickler">TAG_pickler</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2083
</div><div id="TAG_pickler-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TAG_pickler-expanded"><a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-187" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
2059
2084
web2py.gluon.dal.NoSQLAdapter.DIV
2060
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-197', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
2061
 
<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt> </tt>
2062
 
<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">    <tt class="py-name">marshal_dump</tt> <tt class="py-op">=</tt> <tt class="py-name">cPickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
2063
 
<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-198" class="py-name" targets="Function web2py.gluon.html.TAG_unpickler()=web2py.gluon.html-module.html#TAG_unpickler"><a title="web2py.gluon.html.TAG_unpickler" class="py-name" href="#" onclick="return doclink('link-198', 'TAG_unpickler', 'link-198');">TAG_unpickler</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">marshal_dump</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
2064
 
</div><a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"> </tt>
2065
 
<a name="__TAG__"></a><div id="__TAG__-def"><a name="L1013"></a><tt class="py-lineno">1013</tt> <a class="py-toggle" href="#" id="__TAG__-toggle" onclick="return toggle('__TAG__');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html">__TAG__</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2066
 
</div><div id="__TAG__-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="__TAG__-expanded"><a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"> </tt>
2067
 
<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
2068
 
<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-docstring">    TAG factory example::</tt> </tt>
2069
 
<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2070
 
<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print TAG.first(TAG.second('test'), _key = 3)</tt> </tt>
2071
 
<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;first key=\"3\"&gt;&lt;second&gt;test&lt;/second&gt;&lt;/first&gt;</tt> </tt>
2072
 
<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2073
 
<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
2074
 
<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"> </tt>
2075
 
<a name="__TAG__.__getitem__"></a><div id="__TAG__.__getitem__-def"><a name="L1023"></a><tt class="py-lineno">1023</tt> <a class="py-toggle" href="#" id="__TAG__.__getitem__-toggle" onclick="return toggle('__TAG__.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2076
 
</div><div id="__TAG__.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__getitem__-expanded"><a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name" targets="Method web2py.gluon.dal.DAL.__getattr__()=web2py.gluon.dal.DAL-class.html#__getattr__,Method web2py.gluon.dal.Reference.__getattr__()=web2py.gluon.dal.Reference-class.html#__getattr__,Method web2py.gluon.dal.Row.__getattr__()=web2py.gluon.dal.Row-class.html#__getattr__,Method web2py.gluon.dal.Table.__getattr__()=web2py.gluon.dal.Table-class.html#__getattr__,Method web2py.gluon.html.XML.__getattr__()=web2py.gluon.html.XML-class.html#__getattr__,Method web2py.gluon.html.__TAG__.__getattr__()=web2py.gluon.html.__TAG__-class.html#__getattr__,Method web2py.gluon.languages.lazyT.__getattr__()=web2py.gluon.languages.lazyT-class.html#__getattr__,Method web2py.gluon.storage.Messages.__getattr__()=web2py.gluon.storage.Messages-class.html#__getattr__,Method web2py.gluon.storage.Storage.__getattr__()=web2py.gluon.storage.Storage-class.html#__getattr__,Method web2py.gluon.storage.StorageList.__getattr__()=web2py.gluon.storage.StorageList-class.html#__getattr__,Method web2py.gluon.tools.PluginManager.__getattr__()=web2py.gluon.tools.PluginManager-class.html#__getattr__"><a title="web2py.gluon.dal.DAL.__getattr__
 
2085
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-187', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
2086
<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt> </tt>
 
2087
<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">    <tt class="py-name">marshal_dump</tt> <tt class="py-op">=</tt> <tt class="py-name">cPickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
 
2088
<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-188" class="py-name" targets="Function web2py.gluon.html.TAG_unpickler()=web2py.gluon.html-module.html#TAG_unpickler"><a title="web2py.gluon.html.TAG_unpickler" class="py-name" href="#" onclick="return doclink('link-188', 'TAG_unpickler', 'link-188');">TAG_unpickler</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">marshal_dump</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
2089
</div><a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"> </tt>
 
2090
<a name="__TAG__"></a><div id="__TAG__-def"><a name="L1030"></a><tt class="py-lineno">1030</tt> <a class="py-toggle" href="#" id="__TAG__-toggle" onclick="return toggle('__TAG__');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html">__TAG__</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2091
</div><div id="__TAG__-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="__TAG__-expanded"><a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line"> </tt>
 
2092
<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
2093
<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line"><tt class="py-docstring">    TAG factory example::</tt> </tt>
 
2094
<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2095
<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; print TAG.first(TAG.second('test'), _key = 3)</tt> </tt>
 
2096
<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"><tt class="py-docstring">        &lt;first key=\"3\"&gt;&lt;second&gt;test&lt;/second&gt;&lt;/first&gt;</tt> </tt>
 
2097
<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2098
<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
2099
<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"> </tt>
 
2100
<a name="__TAG__.__getitem__"></a><div id="__TAG__.__getitem__-def"><a name="L1040"></a><tt class="py-lineno">1040</tt> <a class="py-toggle" href="#" id="__TAG__.__getitem__-toggle" onclick="return toggle('__TAG__.__getitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2101
</div><div id="__TAG__.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__getitem__-expanded"><a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name" targets="Method web2py.gluon.dal.DAL.__getattr__()=web2py.gluon.dal.DAL-class.html#__getattr__,Method web2py.gluon.dal.Reference.__getattr__()=web2py.gluon.dal.Reference-class.html#__getattr__,Method web2py.gluon.dal.Row.__getattr__()=web2py.gluon.dal.Row-class.html#__getattr__,Method web2py.gluon.dal.Table.__getattr__()=web2py.gluon.dal.Table-class.html#__getattr__,Method web2py.gluon.html.XML.__getattr__()=web2py.gluon.html.XML-class.html#__getattr__,Method web2py.gluon.html.__TAG__.__getattr__()=web2py.gluon.html.__TAG__-class.html#__getattr__,Method web2py.gluon.languages.lazyT.__getattr__()=web2py.gluon.languages.lazyT-class.html#__getattr__,Method web2py.gluon.storage.Messages.__getattr__()=web2py.gluon.storage.Messages-class.html#__getattr__,Method web2py.gluon.storage.Storage.__getattr__()=web2py.gluon.storage.Storage-class.html#__getattr__,Method web2py.gluon.storage.StorageList.__getattr__()=web2py.gluon.storage.StorageList-class.html#__getattr__,Method web2py.gluon.tools.PluginManager.__getattr__()=web2py.gluon.tools.PluginManager-class.html#__getattr__"><a title="web2py.gluon.dal.DAL.__getattr__
2077
2102
web2py.gluon.dal.Reference.__getattr__
2078
2103
web2py.gluon.dal.Row.__getattr__
2079
2104
web2py.gluon.dal.Table.__getattr__
2083
2108
web2py.gluon.storage.Messages.__getattr__
2084
2109
web2py.gluon.storage.Storage.__getattr__
2085
2110
web2py.gluon.storage.StorageList.__getattr__
2086
 
web2py.gluon.tools.PluginManager.__getattr__" class="py-name" href="#" onclick="return doclink('link-199', '__getattr__', 'link-199');">__getattr__</a></tt><tt class="py-op">(</tt><tt id="link-200" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-200', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
2087
 
</div><a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"> </tt>
2088
 
<a name="__TAG__.__getattr__"></a><div id="__TAG__.__getattr__-def"><a name="L1026"></a><tt class="py-lineno">1026</tt> <a class="py-toggle" href="#" id="__TAG__.__getattr__-toggle" onclick="return toggle('__TAG__.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2089
 
</div><div id="__TAG__.__getattr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__getattr__-expanded"><a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-201" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-201', 'name', 'link-74');">name</a></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-op">==</tt> <tt class="py-string">'_'</tt><tt class="py-op">:</tt> </tt>
2090
 
<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">            <tt id="link-202" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-202', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-203', 'name', 'link-74');">name</a></tt><tt class="py-op">[</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>
2091
 
<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-204" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-204', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2092
 
<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">            <tt id="link-205" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-205', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-206" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-206', 'name', 'link-74');">name</a></tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-207', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
2093
 
<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">__tag__</tt><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2094
 
<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">            <tt id="link-208" class="py-name"><a title="web2py.gluon.html.A.tag
 
2111
web2py.gluon.tools.PluginManager.__getattr__" class="py-name" href="#" onclick="return doclink('link-189', '__getattr__', 'link-189');">__getattr__</a></tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-190', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
 
2112
</div><a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"> </tt>
 
2113
<a name="__TAG__.__getattr__"></a><div id="__TAG__.__getattr__-def"><a name="L1043"></a><tt class="py-lineno">1043</tt> <a class="py-toggle" href="#" id="__TAG__.__getattr__-toggle" onclick="return toggle('__TAG__.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2114
</div><div id="__TAG__.__getattr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__getattr__-expanded"><a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-191" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-191', 'name', 'link-74');">name</a></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-op">==</tt> <tt class="py-string">'_'</tt><tt class="py-op">:</tt> </tt>
 
2115
<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">            <tt id="link-192" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-192', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-193', 'name', 'link-74');">name</a></tt><tt class="py-op">[</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>
 
2116
<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-194" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-194', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2117
<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">            <tt id="link-195" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-195', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-196" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-196', 'name', 'link-74');">name</a></tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-197', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
 
2118
<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">__tag__</tt><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2119
<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">            <tt id="link-198" class="py-name"><a title="web2py.gluon.html.A.tag
2095
2120
web2py.gluon.html.B.tag
2096
2121
web2py.gluon.html.BEAUTIFY.tag
2097
2122
web2py.gluon.html.BODY.tag
2146
2171
web2py.gluon.html.TR.tag
2147
2172
web2py.gluon.html.TT.tag
2148
2173
web2py.gluon.html.UL.tag
2149
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-208', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-209" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-209', 'name', 'link-74');">name</a></tt> </tt>
2150
 
</div><a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-name">copy_reg</tt><tt class="py-op">.</tt><tt class="py-name">pickle</tt><tt class="py-op">(</tt><tt class="py-name">__tag__</tt><tt class="py-op">,</tt> <tt id="link-210" class="py-name" targets="Function web2py.gluon.html.TAG_pickler()=web2py.gluon.html-module.html#TAG_pickler"><a title="web2py.gluon.html.TAG_pickler" class="py-name" href="#" onclick="return doclink('link-210', 'TAG_pickler', 'link-210');">TAG_pickler</a></tt><tt class="py-op">,</tt> <tt id="link-211" class="py-name"><a title="web2py.gluon.html.TAG_unpickler" class="py-name" href="#" onclick="return doclink('link-211', 'TAG_unpickler', 'link-198');">TAG_unpickler</a></tt><tt class="py-op">)</tt> </tt>
2151
 
<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-keyword">lambda</tt> <tt class="py-op">*</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt id="link-212" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-212', 'b', 'link-146');">b</a></tt><tt class="py-op">:</tt> <tt class="py-name">__tag__</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt id="link-213" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-213', 'b', 'link-146');">b</a></tt><tt class="py-op">)</tt> </tt>
2152
 
</div><a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"> </tt>
2153
 
<a name="__TAG__.__call__"></a><div id="__TAG__.__call__-def"><a name="L1036"></a><tt class="py-lineno">1036</tt> <a class="py-toggle" href="#" id="__TAG__.__call__-toggle" onclick="return toggle('__TAG__.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2154
 
</div><div id="__TAG__.__call__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__call__-expanded"><a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-214" class="py-name" targets="Class web2py.gluon.html.web2pyHTMLParser=web2py.gluon.html.web2pyHTMLParser-class.html"><a title="web2py.gluon.html.web2pyHTMLParser" class="py-name" href="#" onclick="return doclink('link-214', 'web2pyHTMLParser', 'link-214');">web2pyHTMLParser</a></tt><tt class="py-op">(</tt><tt id="link-215" class="py-name"><a title="web2py.gluon.decoder
2155
 
web2py.gluon.decoder.decoder" class="py-name" href="#" onclick="return doclink('link-215', 'decoder', 'link-3');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="web2py.gluon.decoder
2156
 
web2py.gluon.decoder.decoder" class="py-name" href="#" onclick="return doclink('link-216', 'decoder', 'link-3');">decoder</a></tt><tt class="py-op">(</tt><tt id="link-217" class="py-name" targets="Module web2py.gluon.html=web2py.gluon.html-module.html"><a title="web2py.gluon.html" class="py-name" href="#" onclick="return doclink('link-217', 'html', 'link-217');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> </tt>
2157
 
</div></div><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"> </tt>
2158
 
<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt id="link-218" class="py-name" targets="Variable web2py.gluon.TAG=web2py.gluon-module.html#TAG,Variable web2py.gluon.html.TAG=web2py.gluon.html-module.html#TAG,Variable web2py.gluon.tools.TAG=web2py.gluon.tools-module.html#TAG"><a title="web2py.gluon.TAG
 
2174
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-198', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-199" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-199', 'name', 'link-74');">name</a></tt> </tt>
 
2175
</div><a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">        <tt class="py-name">copy_reg</tt><tt class="py-op">.</tt><tt class="py-name">pickle</tt><tt class="py-op">(</tt><tt class="py-name">__tag__</tt><tt class="py-op">,</tt> <tt id="link-200" class="py-name" targets="Function web2py.gluon.html.TAG_pickler()=web2py.gluon.html-module.html#TAG_pickler"><a title="web2py.gluon.html.TAG_pickler" class="py-name" href="#" onclick="return doclink('link-200', 'TAG_pickler', 'link-200');">TAG_pickler</a></tt><tt class="py-op">,</tt> <tt id="link-201" class="py-name"><a title="web2py.gluon.html.TAG_unpickler" class="py-name" href="#" onclick="return doclink('link-201', 'TAG_unpickler', 'link-188');">TAG_unpickler</a></tt><tt class="py-op">)</tt> </tt>
 
2176
<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-keyword">lambda</tt> <tt class="py-op">*</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt id="link-202" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-202', 'b', 'link-145');">b</a></tt><tt class="py-op">:</tt> <tt class="py-name">__tag__</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt id="link-203" class="py-name"><a title="web2py.gluon.rocket.b" class="py-name" href="#" onclick="return doclink('link-203', 'b', 'link-145');">b</a></tt><tt class="py-op">)</tt> </tt>
 
2177
</div><a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"> </tt>
 
2178
<a name="__TAG__.__call__"></a><div id="__TAG__.__call__-def"><a name="L1053"></a><tt class="py-lineno">1053</tt> <a class="py-toggle" href="#" id="__TAG__.__call__-toggle" onclick="return toggle('__TAG__.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.__TAG__-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2179
</div><div id="__TAG__.__call__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="__TAG__.__call__-expanded"><a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-204" class="py-name" targets="Class web2py.gluon.html.web2pyHTMLParser=web2py.gluon.html.web2pyHTMLParser-class.html"><a title="web2py.gluon.html.web2pyHTMLParser" class="py-name" href="#" onclick="return doclink('link-204', 'web2pyHTMLParser', 'link-204');">web2pyHTMLParser</a></tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="web2py.gluon.decoder
 
2180
web2py.gluon.decoder.decoder" class="py-name" href="#" onclick="return doclink('link-205', 'decoder', 'link-3');">decoder</a></tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="web2py.gluon.decoder
 
2181
web2py.gluon.decoder.decoder" class="py-name" href="#" onclick="return doclink('link-206', 'decoder', 'link-3');">decoder</a></tt><tt class="py-op">(</tt><tt id="link-207" class="py-name" targets="Module web2py.gluon.html=web2py.gluon.html-module.html"><a title="web2py.gluon.html" class="py-name" href="#" onclick="return doclink('link-207', 'html', 'link-207');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> </tt>
 
2182
</div></div><a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"> </tt>
 
2183
<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt id="link-208" class="py-name" targets="Variable web2py.gluon.TAG=web2py.gluon-module.html#TAG,Variable web2py.gluon.html.TAG=web2py.gluon.html-module.html#TAG,Variable web2py.gluon.tools.TAG=web2py.gluon.tools-module.html#TAG"><a title="web2py.gluon.TAG
2159
2184
web2py.gluon.html.TAG
2160
 
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-218', 'TAG', 'link-218');">TAG</a></tt> <tt class="py-op">=</tt> <tt id="link-219" class="py-name" targets="Class web2py.gluon.html.__TAG__=web2py.gluon.html.__TAG__-class.html"><a title="web2py.gluon.html.__TAG__" class="py-name" href="#" onclick="return doclink('link-219', '__TAG__', 'link-219');">__TAG__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
2161
 
<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
2162
 
<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"> </tt>
2163
 
<a name="HTML"></a><div id="HTML-def"><a name="L1042"></a><tt class="py-lineno">1042</tt> <a class="py-toggle" href="#" id="HTML-toggle" onclick="return toggle('HTML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HTML-class.html">HTML</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2164
 
</div><div id="HTML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HTML-expanded"><a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
2165
 
<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-docstring">    There are four predefined document type definitions.</tt> </tt>
2166
 
<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-docstring">    They can be specified in the 'doctype' parameter:</tt> </tt>
2167
 
<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2168
 
<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-docstring">    -'strict' enables strict doctype</tt> </tt>
2169
 
<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-docstring">    -'transitional' enables transitional doctype (default)</tt> </tt>
2170
 
<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-docstring">    -'frameset' enables frameset doctype</tt> </tt>
2171
 
<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-docstring">    -'html5' enables HTML 5 doctype</tt> </tt>
2172
 
<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"><tt class="py-docstring">    -any other string will be treated as user's own doctype</tt> </tt>
2173
 
<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2174
 
<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line"><tt class="py-docstring">    'lang' parameter specifies the language of the document.</tt> </tt>
2175
 
<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'en'.</tt> </tt>
2176
 
<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2177
 
<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt class="py-docstring">    See also :class:`DIV`</tt> </tt>
2178
 
<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
2185
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-208', 'TAG', 'link-208');">TAG</a></tt> <tt class="py-op">=</tt> <tt id="link-209" class="py-name" targets="Class web2py.gluon.html.__TAG__=web2py.gluon.html.__TAG__-class.html"><a title="web2py.gluon.html.__TAG__" class="py-name" href="#" onclick="return doclink('link-209', '__TAG__', 'link-209');">__TAG__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
2186
<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"> </tt>
2179
2187
<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line"> </tt>
2180
 
<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">    <tt id="link-220" class="py-name"><a title="web2py.gluon.html.A.tag
2181
 
web2py.gluon.html.B.tag
2182
 
web2py.gluon.html.BEAUTIFY.tag
2183
 
web2py.gluon.html.BODY.tag
2184
 
web2py.gluon.html.BR.tag
2185
 
web2py.gluon.html.BUTTON.tag
2186
 
web2py.gluon.html.CAT.tag
2187
 
web2py.gluon.html.CENTER.tag
2188
 
web2py.gluon.html.COL.tag
2189
 
web2py.gluon.html.COLGROUP.tag
2190
 
web2py.gluon.html.DIV.tag
2191
 
web2py.gluon.html.EM.tag
2192
 
web2py.gluon.html.EMBED.tag
2193
 
web2py.gluon.html.FIELDSET.tag
2194
 
web2py.gluon.html.FORM.tag
2195
 
web2py.gluon.html.H1.tag
2196
 
web2py.gluon.html.H2.tag
2197
 
web2py.gluon.html.H3.tag
2198
 
web2py.gluon.html.H4.tag
2199
 
web2py.gluon.html.H5.tag
2200
 
web2py.gluon.html.H6.tag
2201
 
web2py.gluon.html.HEAD.tag
2202
 
web2py.gluon.html.HR.tag
2203
 
web2py.gluon.html.HTML.tag
2204
 
web2py.gluon.html.I.tag
2205
 
web2py.gluon.html.IFRAME.tag
2206
 
web2py.gluon.html.IMG.tag
2207
 
web2py.gluon.html.INPUT.tag
2208
 
web2py.gluon.html.LABEL.tag
2209
 
web2py.gluon.html.LEGEND.tag
2210
 
web2py.gluon.html.LI.tag
2211
 
web2py.gluon.html.LINK.tag
2212
 
web2py.gluon.html.MENU.tag
2213
 
web2py.gluon.html.META.tag
2214
 
web2py.gluon.html.OBJECT.tag
2215
 
web2py.gluon.html.OL.tag
2216
 
web2py.gluon.html.OPTGROUP.tag
2217
 
web2py.gluon.html.OPTION.tag
2218
 
web2py.gluon.html.P.tag
2219
 
web2py.gluon.html.PRE.tag
2220
 
web2py.gluon.html.SCRIPT.tag
2221
 
web2py.gluon.html.SELECT.tag
2222
 
web2py.gluon.html.SPAN.tag
2223
 
web2py.gluon.html.STYLE.tag
2224
 
web2py.gluon.html.TABLE.tag
2225
 
web2py.gluon.html.TBODY.tag
2226
 
web2py.gluon.html.TD.tag
2227
 
web2py.gluon.html.TEXTAREA.tag
2228
 
web2py.gluon.html.TFOOT.tag
2229
 
web2py.gluon.html.TH.tag
2230
 
web2py.gluon.html.THEAD.tag
2231
 
web2py.gluon.html.TITLE.tag
2232
 
web2py.gluon.html.TR.tag
2233
 
web2py.gluon.html.TT.tag
2234
 
web2py.gluon.html.UL.tag
2235
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-220', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
2236
 
<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"> </tt>
2237
 
<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">    <tt id="link-221" class="py-name" targets="Variable web2py.gluon.html.HTML.strict=web2py.gluon.html.HTML-class.html#strict,Variable web2py.gluon.html.XHTML.strict=web2py.gluon.html.XHTML-class.html#strict"><a title="web2py.gluon.html.HTML.strict
2238
 
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-221', 'strict', 'link-221');">strict</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;\n'</tt> </tt>
2239
 
<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">    <tt id="link-222" class="py-name" targets="Variable web2py.gluon.html.HTML.transitional=web2py.gluon.html.HTML-class.html#transitional,Variable web2py.gluon.html.XHTML.transitional=web2py.gluon.html.XHTML-class.html#transitional"><a title="web2py.gluon.html.HTML.transitional
2240
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-222', 'transitional', 'link-222');">transitional</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;\n'</tt> </tt>
2241
 
<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">    <tt id="link-223" class="py-name" targets="Variable web2py.gluon.html.HTML.frameset=web2py.gluon.html.HTML-class.html#frameset,Variable web2py.gluon.html.XHTML.frameset=web2py.gluon.html.XHTML-class.html#frameset"><a title="web2py.gluon.html.HTML.frameset
2242
 
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-223', 'frameset', 'link-223');">frameset</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;\n'</tt> </tt>
2243
 
<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">    <tt id="link-224" class="py-name" targets="Variable web2py.gluon.html.HTML.html5=web2py.gluon.html.HTML-class.html#html5"><a title="web2py.gluon.html.HTML.html5" class="py-name" href="#" onclick="return doclink('link-224', 'html5', 'link-224');">html5</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML&gt;\n'</tt> </tt>
2244
 
<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"> </tt>
2245
 
<a name="HTML.xml"></a><div id="HTML.xml-def"><a name="L1066"></a><tt class="py-lineno">1066</tt> <a class="py-toggle" href="#" id="HTML.xml-toggle" onclick="return toggle('HTML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.HTML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2246
 
</div><div id="HTML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="HTML.xml-expanded"><a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'lang'</tt><tt class="py-op">]</tt> </tt>
2247
 
<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">lang</tt><tt class="py-op">:</tt> </tt>
2248
 
<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">            <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-string">'en'</tt> </tt>
2249
 
<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
2250
 
<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'doctype'</tt><tt class="py-op">]</tt> </tt>
2251
 
<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt><tt class="py-op">:</tt> </tt>
2252
 
<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'strict'</tt><tt class="py-op">:</tt> </tt>
2253
 
<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="web2py.gluon.html.HTML.strict
2254
 
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-225', 'strict', 'link-221');">strict</a></tt> </tt>
2255
 
<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'transitional'</tt><tt class="py-op">:</tt> </tt>
2256
 
<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="web2py.gluon.html.HTML.transitional
2257
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-226', 'transitional', 'link-222');">transitional</a></tt> </tt>
2258
 
<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'frameset'</tt><tt class="py-op">:</tt> </tt>
2259
 
<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="web2py.gluon.html.HTML.frameset
2260
 
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-227', 'frameset', 'link-223');">frameset</a></tt> </tt>
2261
 
<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'html5'</tt><tt class="py-op">:</tt> </tt>
2262
 
<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="web2py.gluon.html.HTML.html5" class="py-name" href="#" onclick="return doclink('link-228', 'html5', 'link-224');">html5</a></tt> </tt>
2263
 
<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
2264
 
<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">doctype</tt> </tt>
2265
 
<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
2266
 
<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">            <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="web2py.gluon.html.HTML.transitional
2267
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-229', 'transitional', 'link-222');">transitional</a></tt> </tt>
2268
 
<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-230', '_xml', 'link-119');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
2269
 
<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">doctype</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="web2py.gluon.html.A.tag
2270
 
web2py.gluon.html.B.tag
2271
 
web2py.gluon.html.BEAUTIFY.tag
2272
 
web2py.gluon.html.BODY.tag
2273
 
web2py.gluon.html.BR.tag
2274
 
web2py.gluon.html.BUTTON.tag
2275
 
web2py.gluon.html.CAT.tag
2276
 
web2py.gluon.html.CENTER.tag
2277
 
web2py.gluon.html.COL.tag
2278
 
web2py.gluon.html.COLGROUP.tag
2279
 
web2py.gluon.html.DIV.tag
2280
 
web2py.gluon.html.EM.tag
2281
 
web2py.gluon.html.EMBED.tag
2282
 
web2py.gluon.html.FIELDSET.tag
2283
 
web2py.gluon.html.FORM.tag
2284
 
web2py.gluon.html.H1.tag
2285
 
web2py.gluon.html.H2.tag
2286
 
web2py.gluon.html.H3.tag
2287
 
web2py.gluon.html.H4.tag
2288
 
web2py.gluon.html.H5.tag
2289
 
web2py.gluon.html.H6.tag
2290
 
web2py.gluon.html.HEAD.tag
2291
 
web2py.gluon.html.HR.tag
2292
 
web2py.gluon.html.HTML.tag
2293
 
web2py.gluon.html.I.tag
2294
 
web2py.gluon.html.IFRAME.tag
2295
 
web2py.gluon.html.IMG.tag
2296
 
web2py.gluon.html.INPUT.tag
2297
 
web2py.gluon.html.LABEL.tag
2298
 
web2py.gluon.html.LEGEND.tag
2299
 
web2py.gluon.html.LI.tag
2300
 
web2py.gluon.html.LINK.tag
2301
 
web2py.gluon.html.MENU.tag
2302
 
web2py.gluon.html.META.tag
2303
 
web2py.gluon.html.OBJECT.tag
2304
 
web2py.gluon.html.OL.tag
2305
 
web2py.gluon.html.OPTGROUP.tag
2306
 
web2py.gluon.html.OPTION.tag
2307
 
web2py.gluon.html.P.tag
2308
 
web2py.gluon.html.PRE.tag
2309
 
web2py.gluon.html.SCRIPT.tag
2310
 
web2py.gluon.html.SELECT.tag
2311
 
web2py.gluon.html.SPAN.tag
2312
 
web2py.gluon.html.STYLE.tag
2313
 
web2py.gluon.html.TABLE.tag
2314
 
web2py.gluon.html.TBODY.tag
2315
 
web2py.gluon.html.TD.tag
2316
 
web2py.gluon.html.TEXTAREA.tag
2317
 
web2py.gluon.html.TFOOT.tag
2318
 
web2py.gluon.html.TH.tag
2319
 
web2py.gluon.html.THEAD.tag
2320
 
web2py.gluon.html.TITLE.tag
2321
 
web2py.gluon.html.TR.tag
2322
 
web2py.gluon.html.TT.tag
2323
 
web2py.gluon.html.UL.tag
2324
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-231', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="web2py.gluon.html.A.tag
2325
 
web2py.gluon.html.B.tag
2326
 
web2py.gluon.html.BEAUTIFY.tag
2327
 
web2py.gluon.html.BODY.tag
2328
 
web2py.gluon.html.BR.tag
2329
 
web2py.gluon.html.BUTTON.tag
2330
 
web2py.gluon.html.CAT.tag
2331
 
web2py.gluon.html.CENTER.tag
2332
 
web2py.gluon.html.COL.tag
2333
 
web2py.gluon.html.COLGROUP.tag
2334
 
web2py.gluon.html.DIV.tag
2335
 
web2py.gluon.html.EM.tag
2336
 
web2py.gluon.html.EMBED.tag
2337
 
web2py.gluon.html.FIELDSET.tag
2338
 
web2py.gluon.html.FORM.tag
2339
 
web2py.gluon.html.H1.tag
2340
 
web2py.gluon.html.H2.tag
2341
 
web2py.gluon.html.H3.tag
2342
 
web2py.gluon.html.H4.tag
2343
 
web2py.gluon.html.H5.tag
2344
 
web2py.gluon.html.H6.tag
2345
 
web2py.gluon.html.HEAD.tag
2346
 
web2py.gluon.html.HR.tag
2347
 
web2py.gluon.html.HTML.tag
2348
 
web2py.gluon.html.I.tag
2349
 
web2py.gluon.html.IFRAME.tag
2350
 
web2py.gluon.html.IMG.tag
2351
 
web2py.gluon.html.INPUT.tag
2352
 
web2py.gluon.html.LABEL.tag
2353
 
web2py.gluon.html.LEGEND.tag
2354
 
web2py.gluon.html.LI.tag
2355
 
web2py.gluon.html.LINK.tag
2356
 
web2py.gluon.html.MENU.tag
2357
 
web2py.gluon.html.META.tag
2358
 
web2py.gluon.html.OBJECT.tag
2359
 
web2py.gluon.html.OL.tag
2360
 
web2py.gluon.html.OPTGROUP.tag
2361
 
web2py.gluon.html.OPTION.tag
2362
 
web2py.gluon.html.P.tag
2363
 
web2py.gluon.html.PRE.tag
2364
 
web2py.gluon.html.SCRIPT.tag
2365
 
web2py.gluon.html.SELECT.tag
2366
 
web2py.gluon.html.SPAN.tag
2367
 
web2py.gluon.html.STYLE.tag
2368
 
web2py.gluon.html.TABLE.tag
2369
 
web2py.gluon.html.TBODY.tag
2370
 
web2py.gluon.html.TD.tag
2371
 
web2py.gluon.html.TEXTAREA.tag
2372
 
web2py.gluon.html.TFOOT.tag
2373
 
web2py.gluon.html.TH.tag
2374
 
web2py.gluon.html.THEAD.tag
2375
 
web2py.gluon.html.TITLE.tag
2376
 
web2py.gluon.html.TR.tag
2377
 
web2py.gluon.html.TT.tag
2378
 
web2py.gluon.html.UL.tag
2379
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-232', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
2380
 
</div></div><a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"> </tt>
2381
 
<a name="XHTML"></a><div id="XHTML-def"><a name="L1088"></a><tt class="py-lineno">1088</tt> <a class="py-toggle" href="#" id="XHTML-toggle" onclick="return toggle('XHTML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XHTML-class.html">XHTML</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2382
 
</div><div id="XHTML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XHTML-expanded"><a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
2383
 
<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"><tt class="py-docstring">    This is XHTML version of the HTML helper.</tt> </tt>
2384
 
<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2385
 
<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"><tt class="py-docstring">    There are three predefined document type definitions.</tt> </tt>
2386
 
<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"><tt class="py-docstring">    They can be specified in the 'doctype' parameter:</tt> </tt>
2387
 
<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2388
 
<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line"><tt class="py-docstring">    -'strict' enables strict doctype</tt> </tt>
2389
 
<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"><tt class="py-docstring">    -'transitional' enables transitional doctype (default)</tt> </tt>
2390
 
<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line"><tt class="py-docstring">    -'frameset' enables frameset doctype</tt> </tt>
2391
 
<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"><tt class="py-docstring">    -any other string will be treated as user's own doctype</tt> </tt>
2392
 
<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2393
 
<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line"><tt class="py-docstring">    'lang' parameter specifies the language of the document and the xml document.</tt> </tt>
2394
 
<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'en'.</tt> </tt>
2395
 
<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2396
 
<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line"><tt class="py-docstring">    'xmlns' parameter specifies the xml namespace.</tt> </tt>
2397
 
<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'http://www.w3.org/1999/xhtml'.</tt> </tt>
2398
 
<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
2399
 
<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"><tt class="py-docstring">    See also :class:`DIV`</tt> </tt>
2400
 
<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
2401
 
<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"> </tt>
2402
 
<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">    <tt id="link-233" class="py-name"><a title="web2py.gluon.html.A.tag
2403
 
web2py.gluon.html.B.tag
2404
 
web2py.gluon.html.BEAUTIFY.tag
2405
 
web2py.gluon.html.BODY.tag
2406
 
web2py.gluon.html.BR.tag
2407
 
web2py.gluon.html.BUTTON.tag
2408
 
web2py.gluon.html.CAT.tag
2409
 
web2py.gluon.html.CENTER.tag
2410
 
web2py.gluon.html.COL.tag
2411
 
web2py.gluon.html.COLGROUP.tag
2412
 
web2py.gluon.html.DIV.tag
2413
 
web2py.gluon.html.EM.tag
2414
 
web2py.gluon.html.EMBED.tag
2415
 
web2py.gluon.html.FIELDSET.tag
2416
 
web2py.gluon.html.FORM.tag
2417
 
web2py.gluon.html.H1.tag
2418
 
web2py.gluon.html.H2.tag
2419
 
web2py.gluon.html.H3.tag
2420
 
web2py.gluon.html.H4.tag
2421
 
web2py.gluon.html.H5.tag
2422
 
web2py.gluon.html.H6.tag
2423
 
web2py.gluon.html.HEAD.tag
2424
 
web2py.gluon.html.HR.tag
2425
 
web2py.gluon.html.HTML.tag
2426
 
web2py.gluon.html.I.tag
2427
 
web2py.gluon.html.IFRAME.tag
2428
 
web2py.gluon.html.IMG.tag
2429
 
web2py.gluon.html.INPUT.tag
2430
 
web2py.gluon.html.LABEL.tag
2431
 
web2py.gluon.html.LEGEND.tag
2432
 
web2py.gluon.html.LI.tag
2433
 
web2py.gluon.html.LINK.tag
2434
 
web2py.gluon.html.MENU.tag
2435
 
web2py.gluon.html.META.tag
2436
 
web2py.gluon.html.OBJECT.tag
2437
 
web2py.gluon.html.OL.tag
2438
 
web2py.gluon.html.OPTGROUP.tag
2439
 
web2py.gluon.html.OPTION.tag
2440
 
web2py.gluon.html.P.tag
2441
 
web2py.gluon.html.PRE.tag
2442
 
web2py.gluon.html.SCRIPT.tag
2443
 
web2py.gluon.html.SELECT.tag
2444
 
web2py.gluon.html.SPAN.tag
2445
 
web2py.gluon.html.STYLE.tag
2446
 
web2py.gluon.html.TABLE.tag
2447
 
web2py.gluon.html.TBODY.tag
2448
 
web2py.gluon.html.TD.tag
2449
 
web2py.gluon.html.TEXTAREA.tag
2450
 
web2py.gluon.html.TFOOT.tag
2451
 
web2py.gluon.html.TH.tag
2452
 
web2py.gluon.html.THEAD.tag
2453
 
web2py.gluon.html.TITLE.tag
2454
 
web2py.gluon.html.TR.tag
2455
 
web2py.gluon.html.TT.tag
2456
 
web2py.gluon.html.UL.tag
2457
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-233', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
2458
 
<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"> </tt>
2459
 
<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">    <tt id="link-234" class="py-name"><a title="web2py.gluon.html.HTML.strict
2460
 
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-234', 'strict', 'link-221');">strict</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;\n'</tt> </tt>
2461
 
<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">    <tt id="link-235" class="py-name"><a title="web2py.gluon.html.HTML.transitional
2462
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-235', 'transitional', 'link-222');">transitional</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;\n'</tt> </tt>
2463
 
<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">    <tt id="link-236" class="py-name"><a title="web2py.gluon.html.HTML.frameset
2464
 
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-236', 'frameset', 'link-223');">frameset</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;\n'</tt> </tt>
2465
 
<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">    <tt id="link-237" class="py-name" targets="Variable web2py.gluon.html.XHTML.xmlns=web2py.gluon.html.XHTML-class.html#xmlns"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-237', 'xmlns', 'link-237');">xmlns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.w3.org/1999/xhtml'</tt> </tt>
2466
 
<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"> </tt>
2467
 
<a name="XHTML.xml"></a><div id="XHTML.xml-def"><a name="L1116"></a><tt class="py-lineno">1116</tt> <a class="py-toggle" href="#" id="XHTML.xml-toggle" onclick="return toggle('XHTML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XHTML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2468
 
</div><div id="XHTML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XHTML.xml-expanded"><a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt id="link-238" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-238', 'xmlns', 'link-237');">xmlns</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'xmlns'</tt><tt class="py-op">]</tt> </tt>
2469
 
<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-239" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-239', 'xmlns', 'link-237');">xmlns</a></tt><tt class="py-op">:</tt> </tt>
2470
 
<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xmlns'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-240', 'xmlns', 'link-237');">xmlns</a></tt> </tt>
2471
 
<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
2472
 
<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xmlns'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-241', 'xmlns', 'link-237');">xmlns</a></tt> </tt>
2473
 
<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">        <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'lang'</tt><tt class="py-op">]</tt> </tt>
2474
 
<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">lang</tt><tt class="py-op">:</tt> </tt>
2475
 
<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">            <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-string">'en'</tt> </tt>
2476
 
<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
2477
 
<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xml:lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
2478
 
<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'doctype'</tt><tt class="py-op">]</tt> </tt>
2479
 
<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt><tt class="py-op">:</tt> </tt>
2480
 
<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'strict'</tt><tt class="py-op">:</tt> </tt>
2481
 
<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="web2py.gluon.html.HTML.strict
2482
 
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-242', 'strict', 'link-221');">strict</a></tt> </tt>
2483
 
<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'transitional'</tt><tt class="py-op">:</tt> </tt>
2484
 
<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="web2py.gluon.html.HTML.transitional
2485
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-243', 'transitional', 'link-222');">transitional</a></tt> </tt>
2486
 
<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'frameset'</tt><tt class="py-op">:</tt> </tt>
2487
 
<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="web2py.gluon.html.HTML.frameset
2488
 
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-244', 'frameset', 'link-223');">frameset</a></tt> </tt>
2489
 
<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
2490
 
<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">doctype</tt> </tt>
 
2188
<a name="HTML"></a><div id="HTML-def"><a name="L1059"></a><tt class="py-lineno">1059</tt> <a class="py-toggle" href="#" id="HTML-toggle" onclick="return toggle('HTML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HTML-class.html">HTML</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2189
</div><div id="HTML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HTML-expanded"><a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
2190
<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"><tt class="py-docstring">    There are four predefined document type definitions.</tt> </tt>
 
2191
<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"><tt class="py-docstring">    They can be specified in the 'doctype' parameter:</tt> </tt>
 
2192
<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2193
<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line"><tt class="py-docstring">    -'strict' enables strict doctype</tt> </tt>
 
2194
<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"><tt class="py-docstring">    -'transitional' enables transitional doctype (default)</tt> </tt>
 
2195
<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-docstring">    -'frameset' enables frameset doctype</tt> </tt>
 
2196
<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-docstring">    -'html5' enables HTML 5 doctype</tt> </tt>
 
2197
<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-docstring">    -any other string will be treated as user's own doctype</tt> </tt>
 
2198
<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2199
<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-docstring">    'lang' parameter specifies the language of the document.</tt> </tt>
 
2200
<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'en'.</tt> </tt>
 
2201
<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2202
<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-docstring">    See also :class:`DIV`</tt> </tt>
 
2203
<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
2204
<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"> </tt>
 
2205
<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">    <tt id="link-210" class="py-name"><a title="web2py.gluon.html.A.tag
 
2206
web2py.gluon.html.B.tag
 
2207
web2py.gluon.html.BEAUTIFY.tag
 
2208
web2py.gluon.html.BODY.tag
 
2209
web2py.gluon.html.BR.tag
 
2210
web2py.gluon.html.BUTTON.tag
 
2211
web2py.gluon.html.CAT.tag
 
2212
web2py.gluon.html.CENTER.tag
 
2213
web2py.gluon.html.COL.tag
 
2214
web2py.gluon.html.COLGROUP.tag
 
2215
web2py.gluon.html.DIV.tag
 
2216
web2py.gluon.html.EM.tag
 
2217
web2py.gluon.html.EMBED.tag
 
2218
web2py.gluon.html.FIELDSET.tag
 
2219
web2py.gluon.html.FORM.tag
 
2220
web2py.gluon.html.H1.tag
 
2221
web2py.gluon.html.H2.tag
 
2222
web2py.gluon.html.H3.tag
 
2223
web2py.gluon.html.H4.tag
 
2224
web2py.gluon.html.H5.tag
 
2225
web2py.gluon.html.H6.tag
 
2226
web2py.gluon.html.HEAD.tag
 
2227
web2py.gluon.html.HR.tag
 
2228
web2py.gluon.html.HTML.tag
 
2229
web2py.gluon.html.I.tag
 
2230
web2py.gluon.html.IFRAME.tag
 
2231
web2py.gluon.html.IMG.tag
 
2232
web2py.gluon.html.INPUT.tag
 
2233
web2py.gluon.html.LABEL.tag
 
2234
web2py.gluon.html.LEGEND.tag
 
2235
web2py.gluon.html.LI.tag
 
2236
web2py.gluon.html.LINK.tag
 
2237
web2py.gluon.html.MENU.tag
 
2238
web2py.gluon.html.META.tag
 
2239
web2py.gluon.html.OBJECT.tag
 
2240
web2py.gluon.html.OL.tag
 
2241
web2py.gluon.html.OPTGROUP.tag
 
2242
web2py.gluon.html.OPTION.tag
 
2243
web2py.gluon.html.P.tag
 
2244
web2py.gluon.html.PRE.tag
 
2245
web2py.gluon.html.SCRIPT.tag
 
2246
web2py.gluon.html.SELECT.tag
 
2247
web2py.gluon.html.SPAN.tag
 
2248
web2py.gluon.html.STYLE.tag
 
2249
web2py.gluon.html.TABLE.tag
 
2250
web2py.gluon.html.TBODY.tag
 
2251
web2py.gluon.html.TD.tag
 
2252
web2py.gluon.html.TEXTAREA.tag
 
2253
web2py.gluon.html.TFOOT.tag
 
2254
web2py.gluon.html.TH.tag
 
2255
web2py.gluon.html.THEAD.tag
 
2256
web2py.gluon.html.TITLE.tag
 
2257
web2py.gluon.html.TR.tag
 
2258
web2py.gluon.html.TT.tag
 
2259
web2py.gluon.html.UL.tag
 
2260
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-210', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
 
2261
<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"> </tt>
 
2262
<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">    <tt id="link-211" class="py-name" targets="Variable web2py.gluon.html.HTML.strict=web2py.gluon.html.HTML-class.html#strict,Variable web2py.gluon.html.XHTML.strict=web2py.gluon.html.XHTML-class.html#strict"><a title="web2py.gluon.html.HTML.strict
 
2263
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-211', 'strict', 'link-211');">strict</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;\n'</tt> </tt>
 
2264
<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">    <tt id="link-212" class="py-name" targets="Variable web2py.gluon.html.HTML.transitional=web2py.gluon.html.HTML-class.html#transitional,Variable web2py.gluon.html.XHTML.transitional=web2py.gluon.html.XHTML-class.html#transitional"><a title="web2py.gluon.html.HTML.transitional
 
2265
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-212', 'transitional', 'link-212');">transitional</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;\n'</tt> </tt>
 
2266
<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">    <tt id="link-213" class="py-name" targets="Variable web2py.gluon.html.HTML.frameset=web2py.gluon.html.HTML-class.html#frameset,Variable web2py.gluon.html.XHTML.frameset=web2py.gluon.html.XHTML-class.html#frameset"><a title="web2py.gluon.html.HTML.frameset
 
2267
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-213', 'frameset', 'link-213');">frameset</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;\n'</tt> </tt>
 
2268
<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">    <tt id="link-214" class="py-name" targets="Variable web2py.gluon.html.HTML.html5=web2py.gluon.html.HTML-class.html#html5"><a title="web2py.gluon.html.HTML.html5" class="py-name" href="#" onclick="return doclink('link-214', 'html5', 'link-214');">html5</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE HTML&gt;\n'</tt> </tt>
 
2269
<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"> </tt>
 
2270
<a name="HTML.xml"></a><div id="HTML.xml-def"><a name="L1083"></a><tt class="py-lineno">1083</tt> <a class="py-toggle" href="#" id="HTML.xml-toggle" onclick="return toggle('HTML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.HTML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2271
</div><div id="HTML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="HTML.xml-expanded"><a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'lang'</tt><tt class="py-op">]</tt> </tt>
 
2272
<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">lang</tt><tt class="py-op">:</tt> </tt>
 
2273
<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">            <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-string">'en'</tt> </tt>
 
2274
<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
 
2275
<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'doctype'</tt><tt class="py-op">]</tt> </tt>
 
2276
<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt><tt class="py-op">:</tt> </tt>
 
2277
<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'strict'</tt><tt class="py-op">:</tt> </tt>
 
2278
<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="web2py.gluon.html.HTML.strict
 
2279
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-215', 'strict', 'link-211');">strict</a></tt> </tt>
 
2280
<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'transitional'</tt><tt class="py-op">:</tt> </tt>
 
2281
<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="web2py.gluon.html.HTML.transitional
 
2282
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-216', 'transitional', 'link-212');">transitional</a></tt> </tt>
 
2283
<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'frameset'</tt><tt class="py-op">:</tt> </tt>
 
2284
<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="web2py.gluon.html.HTML.frameset
 
2285
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-217', 'frameset', 'link-213');">frameset</a></tt> </tt>
 
2286
<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'html5'</tt><tt class="py-op">:</tt> </tt>
 
2287
<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="web2py.gluon.html.HTML.html5" class="py-name" href="#" onclick="return doclink('link-218', 'html5', 'link-214');">html5</a></tt> </tt>
 
2288
<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
2289
<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">doctype</tt> </tt>
 
2290
<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
2291
<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">            <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="web2py.gluon.html.HTML.transitional
 
2292
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-219', 'transitional', 'link-212');">transitional</a></tt> </tt>
 
2293
<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-220', '_xml', 'link-118');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
2294
<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">doctype</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="web2py.gluon.html.A.tag
 
2295
web2py.gluon.html.B.tag
 
2296
web2py.gluon.html.BEAUTIFY.tag
 
2297
web2py.gluon.html.BODY.tag
 
2298
web2py.gluon.html.BR.tag
 
2299
web2py.gluon.html.BUTTON.tag
 
2300
web2py.gluon.html.CAT.tag
 
2301
web2py.gluon.html.CENTER.tag
 
2302
web2py.gluon.html.COL.tag
 
2303
web2py.gluon.html.COLGROUP.tag
 
2304
web2py.gluon.html.DIV.tag
 
2305
web2py.gluon.html.EM.tag
 
2306
web2py.gluon.html.EMBED.tag
 
2307
web2py.gluon.html.FIELDSET.tag
 
2308
web2py.gluon.html.FORM.tag
 
2309
web2py.gluon.html.H1.tag
 
2310
web2py.gluon.html.H2.tag
 
2311
web2py.gluon.html.H3.tag
 
2312
web2py.gluon.html.H4.tag
 
2313
web2py.gluon.html.H5.tag
 
2314
web2py.gluon.html.H6.tag
 
2315
web2py.gluon.html.HEAD.tag
 
2316
web2py.gluon.html.HR.tag
 
2317
web2py.gluon.html.HTML.tag
 
2318
web2py.gluon.html.I.tag
 
2319
web2py.gluon.html.IFRAME.tag
 
2320
web2py.gluon.html.IMG.tag
 
2321
web2py.gluon.html.INPUT.tag
 
2322
web2py.gluon.html.LABEL.tag
 
2323
web2py.gluon.html.LEGEND.tag
 
2324
web2py.gluon.html.LI.tag
 
2325
web2py.gluon.html.LINK.tag
 
2326
web2py.gluon.html.MENU.tag
 
2327
web2py.gluon.html.META.tag
 
2328
web2py.gluon.html.OBJECT.tag
 
2329
web2py.gluon.html.OL.tag
 
2330
web2py.gluon.html.OPTGROUP.tag
 
2331
web2py.gluon.html.OPTION.tag
 
2332
web2py.gluon.html.P.tag
 
2333
web2py.gluon.html.PRE.tag
 
2334
web2py.gluon.html.SCRIPT.tag
 
2335
web2py.gluon.html.SELECT.tag
 
2336
web2py.gluon.html.SPAN.tag
 
2337
web2py.gluon.html.STYLE.tag
 
2338
web2py.gluon.html.TABLE.tag
 
2339
web2py.gluon.html.TBODY.tag
 
2340
web2py.gluon.html.TD.tag
 
2341
web2py.gluon.html.TEXTAREA.tag
 
2342
web2py.gluon.html.TFOOT.tag
 
2343
web2py.gluon.html.TH.tag
 
2344
web2py.gluon.html.THEAD.tag
 
2345
web2py.gluon.html.TITLE.tag
 
2346
web2py.gluon.html.TR.tag
 
2347
web2py.gluon.html.TT.tag
 
2348
web2py.gluon.html.UL.tag
 
2349
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-221', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="web2py.gluon.html.A.tag
 
2350
web2py.gluon.html.B.tag
 
2351
web2py.gluon.html.BEAUTIFY.tag
 
2352
web2py.gluon.html.BODY.tag
 
2353
web2py.gluon.html.BR.tag
 
2354
web2py.gluon.html.BUTTON.tag
 
2355
web2py.gluon.html.CAT.tag
 
2356
web2py.gluon.html.CENTER.tag
 
2357
web2py.gluon.html.COL.tag
 
2358
web2py.gluon.html.COLGROUP.tag
 
2359
web2py.gluon.html.DIV.tag
 
2360
web2py.gluon.html.EM.tag
 
2361
web2py.gluon.html.EMBED.tag
 
2362
web2py.gluon.html.FIELDSET.tag
 
2363
web2py.gluon.html.FORM.tag
 
2364
web2py.gluon.html.H1.tag
 
2365
web2py.gluon.html.H2.tag
 
2366
web2py.gluon.html.H3.tag
 
2367
web2py.gluon.html.H4.tag
 
2368
web2py.gluon.html.H5.tag
 
2369
web2py.gluon.html.H6.tag
 
2370
web2py.gluon.html.HEAD.tag
 
2371
web2py.gluon.html.HR.tag
 
2372
web2py.gluon.html.HTML.tag
 
2373
web2py.gluon.html.I.tag
 
2374
web2py.gluon.html.IFRAME.tag
 
2375
web2py.gluon.html.IMG.tag
 
2376
web2py.gluon.html.INPUT.tag
 
2377
web2py.gluon.html.LABEL.tag
 
2378
web2py.gluon.html.LEGEND.tag
 
2379
web2py.gluon.html.LI.tag
 
2380
web2py.gluon.html.LINK.tag
 
2381
web2py.gluon.html.MENU.tag
 
2382
web2py.gluon.html.META.tag
 
2383
web2py.gluon.html.OBJECT.tag
 
2384
web2py.gluon.html.OL.tag
 
2385
web2py.gluon.html.OPTGROUP.tag
 
2386
web2py.gluon.html.OPTION.tag
 
2387
web2py.gluon.html.P.tag
 
2388
web2py.gluon.html.PRE.tag
 
2389
web2py.gluon.html.SCRIPT.tag
 
2390
web2py.gluon.html.SELECT.tag
 
2391
web2py.gluon.html.SPAN.tag
 
2392
web2py.gluon.html.STYLE.tag
 
2393
web2py.gluon.html.TABLE.tag
 
2394
web2py.gluon.html.TBODY.tag
 
2395
web2py.gluon.html.TD.tag
 
2396
web2py.gluon.html.TEXTAREA.tag
 
2397
web2py.gluon.html.TFOOT.tag
 
2398
web2py.gluon.html.TH.tag
 
2399
web2py.gluon.html.THEAD.tag
 
2400
web2py.gluon.html.TITLE.tag
 
2401
web2py.gluon.html.TR.tag
 
2402
web2py.gluon.html.TT.tag
 
2403
web2py.gluon.html.UL.tag
 
2404
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-222', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
2405
</div></div><a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"> </tt>
 
2406
<a name="XHTML"></a><div id="XHTML-def"><a name="L1105"></a><tt class="py-lineno">1105</tt> <a class="py-toggle" href="#" id="XHTML-toggle" onclick="return toggle('XHTML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.XHTML-class.html">XHTML</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2407
</div><div id="XHTML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XHTML-expanded"><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
2408
<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-docstring">    This is XHTML version of the HTML helper.</tt> </tt>
 
2409
<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2410
<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"><tt class="py-docstring">    There are three predefined document type definitions.</tt> </tt>
 
2411
<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-docstring">    They can be specified in the 'doctype' parameter:</tt> </tt>
 
2412
<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2413
<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-docstring">    -'strict' enables strict doctype</tt> </tt>
 
2414
<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-docstring">    -'transitional' enables transitional doctype (default)</tt> </tt>
 
2415
<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-docstring">    -'frameset' enables frameset doctype</tt> </tt>
 
2416
<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-docstring">    -any other string will be treated as user's own doctype</tt> </tt>
 
2417
<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2418
<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-docstring">    'lang' parameter specifies the language of the document and the xml document.</tt> </tt>
 
2419
<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'en'.</tt> </tt>
 
2420
<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2421
<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line"><tt class="py-docstring">    'xmlns' parameter specifies the xml namespace.</tt> </tt>
 
2422
<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line"><tt class="py-docstring">    Defaults to 'http://www.w3.org/1999/xhtml'.</tt> </tt>
 
2423
<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
2424
<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line"><tt class="py-docstring">    See also :class:`DIV`</tt> </tt>
 
2425
<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
2426
<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"> </tt>
 
2427
<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">    <tt id="link-223" class="py-name"><a title="web2py.gluon.html.A.tag
 
2428
web2py.gluon.html.B.tag
 
2429
web2py.gluon.html.BEAUTIFY.tag
 
2430
web2py.gluon.html.BODY.tag
 
2431
web2py.gluon.html.BR.tag
 
2432
web2py.gluon.html.BUTTON.tag
 
2433
web2py.gluon.html.CAT.tag
 
2434
web2py.gluon.html.CENTER.tag
 
2435
web2py.gluon.html.COL.tag
 
2436
web2py.gluon.html.COLGROUP.tag
 
2437
web2py.gluon.html.DIV.tag
 
2438
web2py.gluon.html.EM.tag
 
2439
web2py.gluon.html.EMBED.tag
 
2440
web2py.gluon.html.FIELDSET.tag
 
2441
web2py.gluon.html.FORM.tag
 
2442
web2py.gluon.html.H1.tag
 
2443
web2py.gluon.html.H2.tag
 
2444
web2py.gluon.html.H3.tag
 
2445
web2py.gluon.html.H4.tag
 
2446
web2py.gluon.html.H5.tag
 
2447
web2py.gluon.html.H6.tag
 
2448
web2py.gluon.html.HEAD.tag
 
2449
web2py.gluon.html.HR.tag
 
2450
web2py.gluon.html.HTML.tag
 
2451
web2py.gluon.html.I.tag
 
2452
web2py.gluon.html.IFRAME.tag
 
2453
web2py.gluon.html.IMG.tag
 
2454
web2py.gluon.html.INPUT.tag
 
2455
web2py.gluon.html.LABEL.tag
 
2456
web2py.gluon.html.LEGEND.tag
 
2457
web2py.gluon.html.LI.tag
 
2458
web2py.gluon.html.LINK.tag
 
2459
web2py.gluon.html.MENU.tag
 
2460
web2py.gluon.html.META.tag
 
2461
web2py.gluon.html.OBJECT.tag
 
2462
web2py.gluon.html.OL.tag
 
2463
web2py.gluon.html.OPTGROUP.tag
 
2464
web2py.gluon.html.OPTION.tag
 
2465
web2py.gluon.html.P.tag
 
2466
web2py.gluon.html.PRE.tag
 
2467
web2py.gluon.html.SCRIPT.tag
 
2468
web2py.gluon.html.SELECT.tag
 
2469
web2py.gluon.html.SPAN.tag
 
2470
web2py.gluon.html.STYLE.tag
 
2471
web2py.gluon.html.TABLE.tag
 
2472
web2py.gluon.html.TBODY.tag
 
2473
web2py.gluon.html.TD.tag
 
2474
web2py.gluon.html.TEXTAREA.tag
 
2475
web2py.gluon.html.TFOOT.tag
 
2476
web2py.gluon.html.TH.tag
 
2477
web2py.gluon.html.THEAD.tag
 
2478
web2py.gluon.html.TITLE.tag
 
2479
web2py.gluon.html.TR.tag
 
2480
web2py.gluon.html.TT.tag
 
2481
web2py.gluon.html.UL.tag
 
2482
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-223', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'html'</tt> </tt>
 
2483
<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"> </tt>
 
2484
<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">    <tt id="link-224" class="py-name"><a title="web2py.gluon.html.HTML.strict
 
2485
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-224', 'strict', 'link-211');">strict</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;\n'</tt> </tt>
 
2486
<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">    <tt id="link-225" class="py-name"><a title="web2py.gluon.html.HTML.transitional
 
2487
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-225', 'transitional', 'link-212');">transitional</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;\n'</tt> </tt>
 
2488
<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">    <tt id="link-226" class="py-name"><a title="web2py.gluon.html.HTML.frameset
 
2489
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-226', 'frameset', 'link-213');">frameset</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;\n'</tt> </tt>
 
2490
<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">    <tt id="link-227" class="py-name" targets="Variable web2py.gluon.html.XHTML.xmlns=web2py.gluon.html.XHTML-class.html#xmlns"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-227', 'xmlns', 'link-227');">xmlns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.w3.org/1999/xhtml'</tt> </tt>
 
2491
<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"> </tt>
 
2492
<a name="XHTML.xml"></a><div id="XHTML.xml-def"><a name="L1133"></a><tt class="py-lineno">1133</tt> <a class="py-toggle" href="#" id="XHTML.xml-toggle" onclick="return toggle('XHTML.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.XHTML-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2493
</div><div id="XHTML.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XHTML.xml-expanded"><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt id="link-228" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-228', 'xmlns', 'link-227');">xmlns</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'xmlns'</tt><tt class="py-op">]</tt> </tt>
 
2494
<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-229" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-229', 'xmlns', 'link-227');">xmlns</a></tt><tt class="py-op">:</tt> </tt>
 
2495
<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xmlns'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-230" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-230', 'xmlns', 'link-227');">xmlns</a></tt> </tt>
2491
2496
<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
2492
 
<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">            <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="web2py.gluon.html.HTML.transitional
2493
 
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-245', 'transitional', 'link-222');">transitional</a></tt> </tt>
2494
 
<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-246', '_xml', 'link-119');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
2495
 
<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">doctype</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="web2py.gluon.html.A.tag
2496
 
web2py.gluon.html.B.tag
2497
 
web2py.gluon.html.BEAUTIFY.tag
2498
 
web2py.gluon.html.BODY.tag
2499
 
web2py.gluon.html.BR.tag
2500
 
web2py.gluon.html.BUTTON.tag
2501
 
web2py.gluon.html.CAT.tag
2502
 
web2py.gluon.html.CENTER.tag
2503
 
web2py.gluon.html.COL.tag
2504
 
web2py.gluon.html.COLGROUP.tag
2505
 
web2py.gluon.html.DIV.tag
2506
 
web2py.gluon.html.EM.tag
2507
 
web2py.gluon.html.EMBED.tag
2508
 
web2py.gluon.html.FIELDSET.tag
2509
 
web2py.gluon.html.FORM.tag
2510
 
web2py.gluon.html.H1.tag
2511
 
web2py.gluon.html.H2.tag
2512
 
web2py.gluon.html.H3.tag
2513
 
web2py.gluon.html.H4.tag
2514
 
web2py.gluon.html.H5.tag
2515
 
web2py.gluon.html.H6.tag
2516
 
web2py.gluon.html.HEAD.tag
2517
 
web2py.gluon.html.HR.tag
2518
 
web2py.gluon.html.HTML.tag
2519
 
web2py.gluon.html.I.tag
2520
 
web2py.gluon.html.IFRAME.tag
2521
 
web2py.gluon.html.IMG.tag
2522
 
web2py.gluon.html.INPUT.tag
2523
 
web2py.gluon.html.LABEL.tag
2524
 
web2py.gluon.html.LEGEND.tag
2525
 
web2py.gluon.html.LI.tag
2526
 
web2py.gluon.html.LINK.tag
2527
 
web2py.gluon.html.MENU.tag
2528
 
web2py.gluon.html.META.tag
2529
 
web2py.gluon.html.OBJECT.tag
2530
 
web2py.gluon.html.OL.tag
2531
 
web2py.gluon.html.OPTGROUP.tag
2532
 
web2py.gluon.html.OPTION.tag
2533
 
web2py.gluon.html.P.tag
2534
 
web2py.gluon.html.PRE.tag
2535
 
web2py.gluon.html.SCRIPT.tag
2536
 
web2py.gluon.html.SELECT.tag
2537
 
web2py.gluon.html.SPAN.tag
2538
 
web2py.gluon.html.STYLE.tag
2539
 
web2py.gluon.html.TABLE.tag
2540
 
web2py.gluon.html.TBODY.tag
2541
 
web2py.gluon.html.TD.tag
2542
 
web2py.gluon.html.TEXTAREA.tag
2543
 
web2py.gluon.html.TFOOT.tag
2544
 
web2py.gluon.html.TH.tag
2545
 
web2py.gluon.html.THEAD.tag
2546
 
web2py.gluon.html.TITLE.tag
2547
 
web2py.gluon.html.TR.tag
2548
 
web2py.gluon.html.TT.tag
2549
 
web2py.gluon.html.UL.tag
2550
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-247', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="web2py.gluon.html.A.tag
2551
 
web2py.gluon.html.B.tag
2552
 
web2py.gluon.html.BEAUTIFY.tag
2553
 
web2py.gluon.html.BODY.tag
2554
 
web2py.gluon.html.BR.tag
2555
 
web2py.gluon.html.BUTTON.tag
2556
 
web2py.gluon.html.CAT.tag
2557
 
web2py.gluon.html.CENTER.tag
2558
 
web2py.gluon.html.COL.tag
2559
 
web2py.gluon.html.COLGROUP.tag
2560
 
web2py.gluon.html.DIV.tag
2561
 
web2py.gluon.html.EM.tag
2562
 
web2py.gluon.html.EMBED.tag
2563
 
web2py.gluon.html.FIELDSET.tag
2564
 
web2py.gluon.html.FORM.tag
2565
 
web2py.gluon.html.H1.tag
2566
 
web2py.gluon.html.H2.tag
2567
 
web2py.gluon.html.H3.tag
2568
 
web2py.gluon.html.H4.tag
2569
 
web2py.gluon.html.H5.tag
2570
 
web2py.gluon.html.H6.tag
2571
 
web2py.gluon.html.HEAD.tag
2572
 
web2py.gluon.html.HR.tag
2573
 
web2py.gluon.html.HTML.tag
2574
 
web2py.gluon.html.I.tag
2575
 
web2py.gluon.html.IFRAME.tag
2576
 
web2py.gluon.html.IMG.tag
2577
 
web2py.gluon.html.INPUT.tag
2578
 
web2py.gluon.html.LABEL.tag
2579
 
web2py.gluon.html.LEGEND.tag
2580
 
web2py.gluon.html.LI.tag
2581
 
web2py.gluon.html.LINK.tag
2582
 
web2py.gluon.html.MENU.tag
2583
 
web2py.gluon.html.META.tag
2584
 
web2py.gluon.html.OBJECT.tag
2585
 
web2py.gluon.html.OL.tag
2586
 
web2py.gluon.html.OPTGROUP.tag
2587
 
web2py.gluon.html.OPTION.tag
2588
 
web2py.gluon.html.P.tag
2589
 
web2py.gluon.html.PRE.tag
2590
 
web2py.gluon.html.SCRIPT.tag
2591
 
web2py.gluon.html.SELECT.tag
2592
 
web2py.gluon.html.SPAN.tag
2593
 
web2py.gluon.html.STYLE.tag
2594
 
web2py.gluon.html.TABLE.tag
2595
 
web2py.gluon.html.TBODY.tag
2596
 
web2py.gluon.html.TD.tag
2597
 
web2py.gluon.html.TEXTAREA.tag
2598
 
web2py.gluon.html.TFOOT.tag
2599
 
web2py.gluon.html.TH.tag
2600
 
web2py.gluon.html.THEAD.tag
2601
 
web2py.gluon.html.TITLE.tag
2602
 
web2py.gluon.html.TR.tag
2603
 
web2py.gluon.html.TT.tag
2604
 
web2py.gluon.html.UL.tag
2605
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-248', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
2606
 
</div></div><a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
2607
 
<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line"> </tt>
2608
 
<a name="HEAD"></a><div id="HEAD-def"><a name="L1143"></a><tt class="py-lineno">1143</tt> <a class="py-toggle" href="#" id="HEAD-toggle" onclick="return toggle('HEAD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HEAD-class.html">HEAD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2609
 
</div><div id="HEAD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HEAD-expanded"><a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"> </tt>
2610
 
<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">    <tt id="link-249" class="py-name"><a title="web2py.gluon.html.A.tag
2611
 
web2py.gluon.html.B.tag
2612
 
web2py.gluon.html.BEAUTIFY.tag
2613
 
web2py.gluon.html.BODY.tag
2614
 
web2py.gluon.html.BR.tag
2615
 
web2py.gluon.html.BUTTON.tag
2616
 
web2py.gluon.html.CAT.tag
2617
 
web2py.gluon.html.CENTER.tag
2618
 
web2py.gluon.html.COL.tag
2619
 
web2py.gluon.html.COLGROUP.tag
2620
 
web2py.gluon.html.DIV.tag
2621
 
web2py.gluon.html.EM.tag
2622
 
web2py.gluon.html.EMBED.tag
2623
 
web2py.gluon.html.FIELDSET.tag
2624
 
web2py.gluon.html.FORM.tag
2625
 
web2py.gluon.html.H1.tag
2626
 
web2py.gluon.html.H2.tag
2627
 
web2py.gluon.html.H3.tag
2628
 
web2py.gluon.html.H4.tag
2629
 
web2py.gluon.html.H5.tag
2630
 
web2py.gluon.html.H6.tag
2631
 
web2py.gluon.html.HEAD.tag
2632
 
web2py.gluon.html.HR.tag
2633
 
web2py.gluon.html.HTML.tag
2634
 
web2py.gluon.html.I.tag
2635
 
web2py.gluon.html.IFRAME.tag
2636
 
web2py.gluon.html.IMG.tag
2637
 
web2py.gluon.html.INPUT.tag
2638
 
web2py.gluon.html.LABEL.tag
2639
 
web2py.gluon.html.LEGEND.tag
2640
 
web2py.gluon.html.LI.tag
2641
 
web2py.gluon.html.LINK.tag
2642
 
web2py.gluon.html.MENU.tag
2643
 
web2py.gluon.html.META.tag
2644
 
web2py.gluon.html.OBJECT.tag
2645
 
web2py.gluon.html.OL.tag
2646
 
web2py.gluon.html.OPTGROUP.tag
2647
 
web2py.gluon.html.OPTION.tag
2648
 
web2py.gluon.html.P.tag
2649
 
web2py.gluon.html.PRE.tag
2650
 
web2py.gluon.html.SCRIPT.tag
2651
 
web2py.gluon.html.SELECT.tag
2652
 
web2py.gluon.html.SPAN.tag
2653
 
web2py.gluon.html.STYLE.tag
2654
 
web2py.gluon.html.TABLE.tag
2655
 
web2py.gluon.html.TBODY.tag
2656
 
web2py.gluon.html.TD.tag
2657
 
web2py.gluon.html.TEXTAREA.tag
2658
 
web2py.gluon.html.TFOOT.tag
2659
 
web2py.gluon.html.TH.tag
2660
 
web2py.gluon.html.THEAD.tag
2661
 
web2py.gluon.html.TITLE.tag
2662
 
web2py.gluon.html.TR.tag
2663
 
web2py.gluon.html.TT.tag
2664
 
web2py.gluon.html.UL.tag
2665
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-249', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'head'</tt> </tt>
2666
 
</div><a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
2667
 
<a name="TITLE"></a><div id="TITLE-def"><a name="L1147"></a><tt class="py-lineno">1147</tt> <a class="py-toggle" href="#" id="TITLE-toggle" onclick="return toggle('TITLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TITLE-class.html">TITLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2668
 
</div><div id="TITLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TITLE-expanded"><a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"> </tt>
2669
 
<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt id="link-250" class="py-name"><a title="web2py.gluon.html.A.tag
2670
 
web2py.gluon.html.B.tag
2671
 
web2py.gluon.html.BEAUTIFY.tag
2672
 
web2py.gluon.html.BODY.tag
2673
 
web2py.gluon.html.BR.tag
2674
 
web2py.gluon.html.BUTTON.tag
2675
 
web2py.gluon.html.CAT.tag
2676
 
web2py.gluon.html.CENTER.tag
2677
 
web2py.gluon.html.COL.tag
2678
 
web2py.gluon.html.COLGROUP.tag
2679
 
web2py.gluon.html.DIV.tag
2680
 
web2py.gluon.html.EM.tag
2681
 
web2py.gluon.html.EMBED.tag
2682
 
web2py.gluon.html.FIELDSET.tag
2683
 
web2py.gluon.html.FORM.tag
2684
 
web2py.gluon.html.H1.tag
2685
 
web2py.gluon.html.H2.tag
2686
 
web2py.gluon.html.H3.tag
2687
 
web2py.gluon.html.H4.tag
2688
 
web2py.gluon.html.H5.tag
2689
 
web2py.gluon.html.H6.tag
2690
 
web2py.gluon.html.HEAD.tag
2691
 
web2py.gluon.html.HR.tag
2692
 
web2py.gluon.html.HTML.tag
2693
 
web2py.gluon.html.I.tag
2694
 
web2py.gluon.html.IFRAME.tag
2695
 
web2py.gluon.html.IMG.tag
2696
 
web2py.gluon.html.INPUT.tag
2697
 
web2py.gluon.html.LABEL.tag
2698
 
web2py.gluon.html.LEGEND.tag
2699
 
web2py.gluon.html.LI.tag
2700
 
web2py.gluon.html.LINK.tag
2701
 
web2py.gluon.html.MENU.tag
2702
 
web2py.gluon.html.META.tag
2703
 
web2py.gluon.html.OBJECT.tag
2704
 
web2py.gluon.html.OL.tag
2705
 
web2py.gluon.html.OPTGROUP.tag
2706
 
web2py.gluon.html.OPTION.tag
2707
 
web2py.gluon.html.P.tag
2708
 
web2py.gluon.html.PRE.tag
2709
 
web2py.gluon.html.SCRIPT.tag
2710
 
web2py.gluon.html.SELECT.tag
2711
 
web2py.gluon.html.SPAN.tag
2712
 
web2py.gluon.html.STYLE.tag
2713
 
web2py.gluon.html.TABLE.tag
2714
 
web2py.gluon.html.TBODY.tag
2715
 
web2py.gluon.html.TD.tag
2716
 
web2py.gluon.html.TEXTAREA.tag
2717
 
web2py.gluon.html.TFOOT.tag
2718
 
web2py.gluon.html.TH.tag
2719
 
web2py.gluon.html.THEAD.tag
2720
 
web2py.gluon.html.TITLE.tag
2721
 
web2py.gluon.html.TR.tag
2722
 
web2py.gluon.html.TT.tag
2723
 
web2py.gluon.html.UL.tag
2724
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-250', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'title'</tt> </tt>
2725
 
</div><a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
2726
 
<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"> </tt>
2727
 
<a name="META"></a><div id="META-def"><a name="L1152"></a><tt class="py-lineno">1152</tt> <a class="py-toggle" href="#" id="META-toggle" onclick="return toggle('META');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.META-class.html">META</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2728
 
</div><div id="META-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="META-expanded"><a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"> </tt>
2729
 
<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">    <tt id="link-251" class="py-name"><a title="web2py.gluon.html.A.tag
2730
 
web2py.gluon.html.B.tag
2731
 
web2py.gluon.html.BEAUTIFY.tag
2732
 
web2py.gluon.html.BODY.tag
2733
 
web2py.gluon.html.BR.tag
2734
 
web2py.gluon.html.BUTTON.tag
2735
 
web2py.gluon.html.CAT.tag
2736
 
web2py.gluon.html.CENTER.tag
2737
 
web2py.gluon.html.COL.tag
2738
 
web2py.gluon.html.COLGROUP.tag
2739
 
web2py.gluon.html.DIV.tag
2740
 
web2py.gluon.html.EM.tag
2741
 
web2py.gluon.html.EMBED.tag
2742
 
web2py.gluon.html.FIELDSET.tag
2743
 
web2py.gluon.html.FORM.tag
2744
 
web2py.gluon.html.H1.tag
2745
 
web2py.gluon.html.H2.tag
2746
 
web2py.gluon.html.H3.tag
2747
 
web2py.gluon.html.H4.tag
2748
 
web2py.gluon.html.H5.tag
2749
 
web2py.gluon.html.H6.tag
2750
 
web2py.gluon.html.HEAD.tag
2751
 
web2py.gluon.html.HR.tag
2752
 
web2py.gluon.html.HTML.tag
2753
 
web2py.gluon.html.I.tag
2754
 
web2py.gluon.html.IFRAME.tag
2755
 
web2py.gluon.html.IMG.tag
2756
 
web2py.gluon.html.INPUT.tag
2757
 
web2py.gluon.html.LABEL.tag
2758
 
web2py.gluon.html.LEGEND.tag
2759
 
web2py.gluon.html.LI.tag
2760
 
web2py.gluon.html.LINK.tag
2761
 
web2py.gluon.html.MENU.tag
2762
 
web2py.gluon.html.META.tag
2763
 
web2py.gluon.html.OBJECT.tag
2764
 
web2py.gluon.html.OL.tag
2765
 
web2py.gluon.html.OPTGROUP.tag
2766
 
web2py.gluon.html.OPTION.tag
2767
 
web2py.gluon.html.P.tag
2768
 
web2py.gluon.html.PRE.tag
2769
 
web2py.gluon.html.SCRIPT.tag
2770
 
web2py.gluon.html.SELECT.tag
2771
 
web2py.gluon.html.SPAN.tag
2772
 
web2py.gluon.html.STYLE.tag
2773
 
web2py.gluon.html.TABLE.tag
2774
 
web2py.gluon.html.TBODY.tag
2775
 
web2py.gluon.html.TD.tag
2776
 
web2py.gluon.html.TEXTAREA.tag
2777
 
web2py.gluon.html.TFOOT.tag
2778
 
web2py.gluon.html.TH.tag
2779
 
web2py.gluon.html.THEAD.tag
2780
 
web2py.gluon.html.TITLE.tag
2781
 
web2py.gluon.html.TR.tag
2782
 
web2py.gluon.html.TT.tag
2783
 
web2py.gluon.html.UL.tag
2784
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-251', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'meta/'</tt> </tt>
2785
 
</div><a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"> </tt>
2786
 
<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"> </tt>
2787
 
<a name="LINK"></a><div id="LINK-def"><a name="L1157"></a><tt class="py-lineno">1157</tt> <a class="py-toggle" href="#" id="LINK-toggle" onclick="return toggle('LINK');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LINK-class.html">LINK</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2788
 
</div><div id="LINK-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LINK-expanded"><a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"> </tt>
2789
 
<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">    <tt id="link-252" class="py-name"><a title="web2py.gluon.html.A.tag
2790
 
web2py.gluon.html.B.tag
2791
 
web2py.gluon.html.BEAUTIFY.tag
2792
 
web2py.gluon.html.BODY.tag
2793
 
web2py.gluon.html.BR.tag
2794
 
web2py.gluon.html.BUTTON.tag
2795
 
web2py.gluon.html.CAT.tag
2796
 
web2py.gluon.html.CENTER.tag
2797
 
web2py.gluon.html.COL.tag
2798
 
web2py.gluon.html.COLGROUP.tag
2799
 
web2py.gluon.html.DIV.tag
2800
 
web2py.gluon.html.EM.tag
2801
 
web2py.gluon.html.EMBED.tag
2802
 
web2py.gluon.html.FIELDSET.tag
2803
 
web2py.gluon.html.FORM.tag
2804
 
web2py.gluon.html.H1.tag
2805
 
web2py.gluon.html.H2.tag
2806
 
web2py.gluon.html.H3.tag
2807
 
web2py.gluon.html.H4.tag
2808
 
web2py.gluon.html.H5.tag
2809
 
web2py.gluon.html.H6.tag
2810
 
web2py.gluon.html.HEAD.tag
2811
 
web2py.gluon.html.HR.tag
2812
 
web2py.gluon.html.HTML.tag
2813
 
web2py.gluon.html.I.tag
2814
 
web2py.gluon.html.IFRAME.tag
2815
 
web2py.gluon.html.IMG.tag
2816
 
web2py.gluon.html.INPUT.tag
2817
 
web2py.gluon.html.LABEL.tag
2818
 
web2py.gluon.html.LEGEND.tag
2819
 
web2py.gluon.html.LI.tag
2820
 
web2py.gluon.html.LINK.tag
2821
 
web2py.gluon.html.MENU.tag
2822
 
web2py.gluon.html.META.tag
2823
 
web2py.gluon.html.OBJECT.tag
2824
 
web2py.gluon.html.OL.tag
2825
 
web2py.gluon.html.OPTGROUP.tag
2826
 
web2py.gluon.html.OPTION.tag
2827
 
web2py.gluon.html.P.tag
2828
 
web2py.gluon.html.PRE.tag
2829
 
web2py.gluon.html.SCRIPT.tag
2830
 
web2py.gluon.html.SELECT.tag
2831
 
web2py.gluon.html.SPAN.tag
2832
 
web2py.gluon.html.STYLE.tag
2833
 
web2py.gluon.html.TABLE.tag
2834
 
web2py.gluon.html.TBODY.tag
2835
 
web2py.gluon.html.TD.tag
2836
 
web2py.gluon.html.TEXTAREA.tag
2837
 
web2py.gluon.html.TFOOT.tag
2838
 
web2py.gluon.html.TH.tag
2839
 
web2py.gluon.html.THEAD.tag
2840
 
web2py.gluon.html.TITLE.tag
2841
 
web2py.gluon.html.TR.tag
2842
 
web2py.gluon.html.TT.tag
2843
 
web2py.gluon.html.UL.tag
2844
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-252', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'link/'</tt> </tt>
2845
 
</div><a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"> </tt>
2846
 
<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"> </tt>
2847
 
<a name="SCRIPT"></a><div id="SCRIPT-def"><a name="L1162"></a><tt class="py-lineno">1162</tt> <a class="py-toggle" href="#" id="SCRIPT-toggle" onclick="return toggle('SCRIPT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SCRIPT-class.html">SCRIPT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2848
 
</div><div id="SCRIPT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SCRIPT-expanded"><a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"> </tt>
2849
 
<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">    <tt id="link-253" class="py-name"><a title="web2py.gluon.html.A.tag
2850
 
web2py.gluon.html.B.tag
2851
 
web2py.gluon.html.BEAUTIFY.tag
2852
 
web2py.gluon.html.BODY.tag
2853
 
web2py.gluon.html.BR.tag
2854
 
web2py.gluon.html.BUTTON.tag
2855
 
web2py.gluon.html.CAT.tag
2856
 
web2py.gluon.html.CENTER.tag
2857
 
web2py.gluon.html.COL.tag
2858
 
web2py.gluon.html.COLGROUP.tag
2859
 
web2py.gluon.html.DIV.tag
2860
 
web2py.gluon.html.EM.tag
2861
 
web2py.gluon.html.EMBED.tag
2862
 
web2py.gluon.html.FIELDSET.tag
2863
 
web2py.gluon.html.FORM.tag
2864
 
web2py.gluon.html.H1.tag
2865
 
web2py.gluon.html.H2.tag
2866
 
web2py.gluon.html.H3.tag
2867
 
web2py.gluon.html.H4.tag
2868
 
web2py.gluon.html.H5.tag
2869
 
web2py.gluon.html.H6.tag
2870
 
web2py.gluon.html.HEAD.tag
2871
 
web2py.gluon.html.HR.tag
2872
 
web2py.gluon.html.HTML.tag
2873
 
web2py.gluon.html.I.tag
2874
 
web2py.gluon.html.IFRAME.tag
2875
 
web2py.gluon.html.IMG.tag
2876
 
web2py.gluon.html.INPUT.tag
2877
 
web2py.gluon.html.LABEL.tag
2878
 
web2py.gluon.html.LEGEND.tag
2879
 
web2py.gluon.html.LI.tag
2880
 
web2py.gluon.html.LINK.tag
2881
 
web2py.gluon.html.MENU.tag
2882
 
web2py.gluon.html.META.tag
2883
 
web2py.gluon.html.OBJECT.tag
2884
 
web2py.gluon.html.OL.tag
2885
 
web2py.gluon.html.OPTGROUP.tag
2886
 
web2py.gluon.html.OPTION.tag
2887
 
web2py.gluon.html.P.tag
2888
 
web2py.gluon.html.PRE.tag
2889
 
web2py.gluon.html.SCRIPT.tag
2890
 
web2py.gluon.html.SELECT.tag
2891
 
web2py.gluon.html.SPAN.tag
2892
 
web2py.gluon.html.STYLE.tag
2893
 
web2py.gluon.html.TABLE.tag
2894
 
web2py.gluon.html.TBODY.tag
2895
 
web2py.gluon.html.TD.tag
2896
 
web2py.gluon.html.TEXTAREA.tag
2897
 
web2py.gluon.html.TFOOT.tag
2898
 
web2py.gluon.html.TH.tag
2899
 
web2py.gluon.html.THEAD.tag
2900
 
web2py.gluon.html.TITLE.tag
2901
 
web2py.gluon.html.TR.tag
2902
 
web2py.gluon.html.TT.tag
2903
 
web2py.gluon.html.UL.tag
2904
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-253', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'script'</tt> </tt>
2905
 
<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"> </tt>
2906
 
<a name="SCRIPT.xml"></a><div id="SCRIPT.xml-def"><a name="L1166"></a><tt class="py-lineno">1166</tt> <a class="py-toggle" href="#" id="SCRIPT.xml-toggle" onclick="return toggle('SCRIPT.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SCRIPT-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
2907
 
</div><div id="SCRIPT.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SCRIPT.xml-expanded"><a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-254', '_xml', 'link-119');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
2908
 
<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">        <tt class="py-comment"># no escaping of subcomponents</tt> </tt>
2909
 
<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-255', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
2910
 
<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">                       <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
2911
 
<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">co</tt><tt class="py-op">:</tt> </tt>
2912
 
<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;script [attributes]&gt;&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--</tt> </tt>
2913
 
<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># script body</tt> </tt>
2914
 
<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># //--&gt;&lt;!]]&gt;&lt;/script&gt;</tt> </tt>
2915
 
<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># return '&lt;%s%s&gt;&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--\n%s\n//--&gt;&lt;!]]&gt;&lt;/%s&gt;' % (self.tag, fa, co, self.tag)</tt> </tt>
2916
 
<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;&lt;!--\n%s\n//--&gt;&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="web2py.gluon.html.A.tag
2917
 
web2py.gluon.html.B.tag
2918
 
web2py.gluon.html.BEAUTIFY.tag
2919
 
web2py.gluon.html.BODY.tag
2920
 
web2py.gluon.html.BR.tag
2921
 
web2py.gluon.html.BUTTON.tag
2922
 
web2py.gluon.html.CAT.tag
2923
 
web2py.gluon.html.CENTER.tag
2924
 
web2py.gluon.html.COL.tag
2925
 
web2py.gluon.html.COLGROUP.tag
2926
 
web2py.gluon.html.DIV.tag
2927
 
web2py.gluon.html.EM.tag
2928
 
web2py.gluon.html.EMBED.tag
2929
 
web2py.gluon.html.FIELDSET.tag
2930
 
web2py.gluon.html.FORM.tag
2931
 
web2py.gluon.html.H1.tag
2932
 
web2py.gluon.html.H2.tag
2933
 
web2py.gluon.html.H3.tag
2934
 
web2py.gluon.html.H4.tag
2935
 
web2py.gluon.html.H5.tag
2936
 
web2py.gluon.html.H6.tag
2937
 
web2py.gluon.html.HEAD.tag
2938
 
web2py.gluon.html.HR.tag
2939
 
web2py.gluon.html.HTML.tag
2940
 
web2py.gluon.html.I.tag
2941
 
web2py.gluon.html.IFRAME.tag
2942
 
web2py.gluon.html.IMG.tag
2943
 
web2py.gluon.html.INPUT.tag
2944
 
web2py.gluon.html.LABEL.tag
2945
 
web2py.gluon.html.LEGEND.tag
2946
 
web2py.gluon.html.LI.tag
2947
 
web2py.gluon.html.LINK.tag
2948
 
web2py.gluon.html.MENU.tag
2949
 
web2py.gluon.html.META.tag
2950
 
web2py.gluon.html.OBJECT.tag
2951
 
web2py.gluon.html.OL.tag
2952
 
web2py.gluon.html.OPTGROUP.tag
2953
 
web2py.gluon.html.OPTION.tag
2954
 
web2py.gluon.html.P.tag
2955
 
web2py.gluon.html.PRE.tag
2956
 
web2py.gluon.html.SCRIPT.tag
2957
 
web2py.gluon.html.SELECT.tag
2958
 
web2py.gluon.html.SPAN.tag
2959
 
web2py.gluon.html.STYLE.tag
2960
 
web2py.gluon.html.TABLE.tag
2961
 
web2py.gluon.html.TBODY.tag
2962
 
web2py.gluon.html.TD.tag
2963
 
web2py.gluon.html.TEXTAREA.tag
2964
 
web2py.gluon.html.TFOOT.tag
2965
 
web2py.gluon.html.TH.tag
2966
 
web2py.gluon.html.THEAD.tag
2967
 
web2py.gluon.html.TITLE.tag
2968
 
web2py.gluon.html.TR.tag
2969
 
web2py.gluon.html.TT.tag
2970
 
web2py.gluon.html.UL.tag
2971
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-256', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="web2py.gluon.html.A.tag
2972
 
web2py.gluon.html.B.tag
2973
 
web2py.gluon.html.BEAUTIFY.tag
2974
 
web2py.gluon.html.BODY.tag
2975
 
web2py.gluon.html.BR.tag
2976
 
web2py.gluon.html.BUTTON.tag
2977
 
web2py.gluon.html.CAT.tag
2978
 
web2py.gluon.html.CENTER.tag
2979
 
web2py.gluon.html.COL.tag
2980
 
web2py.gluon.html.COLGROUP.tag
2981
 
web2py.gluon.html.DIV.tag
2982
 
web2py.gluon.html.EM.tag
2983
 
web2py.gluon.html.EMBED.tag
2984
 
web2py.gluon.html.FIELDSET.tag
2985
 
web2py.gluon.html.FORM.tag
2986
 
web2py.gluon.html.H1.tag
2987
 
web2py.gluon.html.H2.tag
2988
 
web2py.gluon.html.H3.tag
2989
 
web2py.gluon.html.H4.tag
2990
 
web2py.gluon.html.H5.tag
2991
 
web2py.gluon.html.H6.tag
2992
 
web2py.gluon.html.HEAD.tag
2993
 
web2py.gluon.html.HR.tag
2994
 
web2py.gluon.html.HTML.tag
2995
 
web2py.gluon.html.I.tag
2996
 
web2py.gluon.html.IFRAME.tag
2997
 
web2py.gluon.html.IMG.tag
2998
 
web2py.gluon.html.INPUT.tag
2999
 
web2py.gluon.html.LABEL.tag
3000
 
web2py.gluon.html.LEGEND.tag
3001
 
web2py.gluon.html.LI.tag
3002
 
web2py.gluon.html.LINK.tag
3003
 
web2py.gluon.html.MENU.tag
3004
 
web2py.gluon.html.META.tag
3005
 
web2py.gluon.html.OBJECT.tag
3006
 
web2py.gluon.html.OL.tag
3007
 
web2py.gluon.html.OPTGROUP.tag
3008
 
web2py.gluon.html.OPTION.tag
3009
 
web2py.gluon.html.P.tag
3010
 
web2py.gluon.html.PRE.tag
3011
 
web2py.gluon.html.SCRIPT.tag
3012
 
web2py.gluon.html.SELECT.tag
3013
 
web2py.gluon.html.SPAN.tag
3014
 
web2py.gluon.html.STYLE.tag
3015
 
web2py.gluon.html.TABLE.tag
3016
 
web2py.gluon.html.TBODY.tag
3017
 
web2py.gluon.html.TD.tag
3018
 
web2py.gluon.html.TEXTAREA.tag
3019
 
web2py.gluon.html.TFOOT.tag
3020
 
web2py.gluon.html.TH.tag
3021
 
web2py.gluon.html.THEAD.tag
3022
 
web2py.gluon.html.TITLE.tag
3023
 
web2py.gluon.html.TR.tag
3024
 
web2py.gluon.html.TT.tag
3025
 
web2py.gluon.html.UL.tag
3026
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-257', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
3027
 
<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
3028
 
<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-258" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
3029
 
web2py.gluon.dal.NoSQLAdapter.DIV
3030
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-258', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="web2py.gluon.dal.Rows.xml
3031
 
web2py.gluon.html.A.xml
3032
 
web2py.gluon.html.CODE.xml
3033
 
web2py.gluon.html.DIV.xml
3034
 
web2py.gluon.html.FORM.xml
3035
 
web2py.gluon.html.HTML.xml
3036
 
web2py.gluon.html.INPUT.xml
3037
 
web2py.gluon.html.MARKMIN.xml
3038
 
web2py.gluon.html.MENU.xml
3039
 
web2py.gluon.html.P.xml
3040
 
web2py.gluon.html.SCRIPT.xml
3041
 
web2py.gluon.html.STYLE.xml
3042
 
web2py.gluon.html.XHTML.xml
3043
 
web2py.gluon.html.XML.xml
3044
 
web2py.gluon.html.XmlComponent.xml
3045
 
web2py.gluon.languages.lazyT.xml
3046
 
web2py.gluon.serializers.xml
3047
 
web2py.gluon.tools.Recaptcha.xml
3048
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-259', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
3049
 
</div></div><a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt>
3050
 
<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"> </tt>
3051
 
<a name="STYLE"></a><div id="STYLE-def"><a name="L1181"></a><tt class="py-lineno">1181</tt> <a class="py-toggle" href="#" id="STYLE-toggle" onclick="return toggle('STYLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.STYLE-class.html">STYLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3052
 
</div><div id="STYLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="STYLE-expanded"><a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"> </tt>
3053
 
<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">    <tt id="link-260" class="py-name"><a title="web2py.gluon.html.A.tag
3054
 
web2py.gluon.html.B.tag
3055
 
web2py.gluon.html.BEAUTIFY.tag
3056
 
web2py.gluon.html.BODY.tag
3057
 
web2py.gluon.html.BR.tag
3058
 
web2py.gluon.html.BUTTON.tag
3059
 
web2py.gluon.html.CAT.tag
3060
 
web2py.gluon.html.CENTER.tag
3061
 
web2py.gluon.html.COL.tag
3062
 
web2py.gluon.html.COLGROUP.tag
3063
 
web2py.gluon.html.DIV.tag
3064
 
web2py.gluon.html.EM.tag
3065
 
web2py.gluon.html.EMBED.tag
3066
 
web2py.gluon.html.FIELDSET.tag
3067
 
web2py.gluon.html.FORM.tag
3068
 
web2py.gluon.html.H1.tag
3069
 
web2py.gluon.html.H2.tag
3070
 
web2py.gluon.html.H3.tag
3071
 
web2py.gluon.html.H4.tag
3072
 
web2py.gluon.html.H5.tag
3073
 
web2py.gluon.html.H6.tag
3074
 
web2py.gluon.html.HEAD.tag
3075
 
web2py.gluon.html.HR.tag
3076
 
web2py.gluon.html.HTML.tag
3077
 
web2py.gluon.html.I.tag
3078
 
web2py.gluon.html.IFRAME.tag
3079
 
web2py.gluon.html.IMG.tag
3080
 
web2py.gluon.html.INPUT.tag
3081
 
web2py.gluon.html.LABEL.tag
3082
 
web2py.gluon.html.LEGEND.tag
3083
 
web2py.gluon.html.LI.tag
3084
 
web2py.gluon.html.LINK.tag
3085
 
web2py.gluon.html.MENU.tag
3086
 
web2py.gluon.html.META.tag
3087
 
web2py.gluon.html.OBJECT.tag
3088
 
web2py.gluon.html.OL.tag
3089
 
web2py.gluon.html.OPTGROUP.tag
3090
 
web2py.gluon.html.OPTION.tag
3091
 
web2py.gluon.html.P.tag
3092
 
web2py.gluon.html.PRE.tag
3093
 
web2py.gluon.html.SCRIPT.tag
3094
 
web2py.gluon.html.SELECT.tag
3095
 
web2py.gluon.html.SPAN.tag
3096
 
web2py.gluon.html.STYLE.tag
3097
 
web2py.gluon.html.TABLE.tag
3098
 
web2py.gluon.html.TBODY.tag
3099
 
web2py.gluon.html.TD.tag
3100
 
web2py.gluon.html.TEXTAREA.tag
3101
 
web2py.gluon.html.TFOOT.tag
3102
 
web2py.gluon.html.TH.tag
3103
 
web2py.gluon.html.THEAD.tag
3104
 
web2py.gluon.html.TITLE.tag
3105
 
web2py.gluon.html.TR.tag
3106
 
web2py.gluon.html.TT.tag
3107
 
web2py.gluon.html.UL.tag
3108
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-260', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'style'</tt> </tt>
3109
 
<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"> </tt>
3110
 
<a name="STYLE.xml"></a><div id="STYLE.xml-def"><a name="L1185"></a><tt class="py-lineno">1185</tt> <a class="py-toggle" href="#" id="STYLE.xml-toggle" onclick="return toggle('STYLE.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.STYLE-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3111
 
</div><div id="STYLE.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="STYLE.xml-expanded"><a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-261', '_xml', 'link-119');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
3112
 
<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">        <tt class="py-comment"># no escaping of subcomponents</tt> </tt>
3113
 
<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-262', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
3114
 
<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">                       <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
3115
 
<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">co</tt><tt class="py-op">:</tt> </tt>
3116
 
<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;style [attributes]&gt;&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/</tt> </tt>
3117
 
<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># style body</tt> </tt>
3118
 
<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># /*]]&gt;*/--&gt;&lt;/style&gt;</tt> </tt>
3119
 
<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/\n%s\n/*]]&gt;*/--&gt;&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name"><a title="web2py.gluon.html.A.tag
3120
 
web2py.gluon.html.B.tag
3121
 
web2py.gluon.html.BEAUTIFY.tag
3122
 
web2py.gluon.html.BODY.tag
3123
 
web2py.gluon.html.BR.tag
3124
 
web2py.gluon.html.BUTTON.tag
3125
 
web2py.gluon.html.CAT.tag
3126
 
web2py.gluon.html.CENTER.tag
3127
 
web2py.gluon.html.COL.tag
3128
 
web2py.gluon.html.COLGROUP.tag
3129
 
web2py.gluon.html.DIV.tag
3130
 
web2py.gluon.html.EM.tag
3131
 
web2py.gluon.html.EMBED.tag
3132
 
web2py.gluon.html.FIELDSET.tag
3133
 
web2py.gluon.html.FORM.tag
3134
 
web2py.gluon.html.H1.tag
3135
 
web2py.gluon.html.H2.tag
3136
 
web2py.gluon.html.H3.tag
3137
 
web2py.gluon.html.H4.tag
3138
 
web2py.gluon.html.H5.tag
3139
 
web2py.gluon.html.H6.tag
3140
 
web2py.gluon.html.HEAD.tag
3141
 
web2py.gluon.html.HR.tag
3142
 
web2py.gluon.html.HTML.tag
3143
 
web2py.gluon.html.I.tag
3144
 
web2py.gluon.html.IFRAME.tag
3145
 
web2py.gluon.html.IMG.tag
3146
 
web2py.gluon.html.INPUT.tag
3147
 
web2py.gluon.html.LABEL.tag
3148
 
web2py.gluon.html.LEGEND.tag
3149
 
web2py.gluon.html.LI.tag
3150
 
web2py.gluon.html.LINK.tag
3151
 
web2py.gluon.html.MENU.tag
3152
 
web2py.gluon.html.META.tag
3153
 
web2py.gluon.html.OBJECT.tag
3154
 
web2py.gluon.html.OL.tag
3155
 
web2py.gluon.html.OPTGROUP.tag
3156
 
web2py.gluon.html.OPTION.tag
3157
 
web2py.gluon.html.P.tag
3158
 
web2py.gluon.html.PRE.tag
3159
 
web2py.gluon.html.SCRIPT.tag
3160
 
web2py.gluon.html.SELECT.tag
3161
 
web2py.gluon.html.SPAN.tag
3162
 
web2py.gluon.html.STYLE.tag
3163
 
web2py.gluon.html.TABLE.tag
3164
 
web2py.gluon.html.TBODY.tag
3165
 
web2py.gluon.html.TD.tag
3166
 
web2py.gluon.html.TEXTAREA.tag
3167
 
web2py.gluon.html.TFOOT.tag
3168
 
web2py.gluon.html.TH.tag
3169
 
web2py.gluon.html.THEAD.tag
3170
 
web2py.gluon.html.TITLE.tag
3171
 
web2py.gluon.html.TR.tag
3172
 
web2py.gluon.html.TT.tag
3173
 
web2py.gluon.html.UL.tag
3174
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-263', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="web2py.gluon.html.A.tag
3175
 
web2py.gluon.html.B.tag
3176
 
web2py.gluon.html.BEAUTIFY.tag
3177
 
web2py.gluon.html.BODY.tag
3178
 
web2py.gluon.html.BR.tag
3179
 
web2py.gluon.html.BUTTON.tag
3180
 
web2py.gluon.html.CAT.tag
3181
 
web2py.gluon.html.CENTER.tag
3182
 
web2py.gluon.html.COL.tag
3183
 
web2py.gluon.html.COLGROUP.tag
3184
 
web2py.gluon.html.DIV.tag
3185
 
web2py.gluon.html.EM.tag
3186
 
web2py.gluon.html.EMBED.tag
3187
 
web2py.gluon.html.FIELDSET.tag
3188
 
web2py.gluon.html.FORM.tag
3189
 
web2py.gluon.html.H1.tag
3190
 
web2py.gluon.html.H2.tag
3191
 
web2py.gluon.html.H3.tag
3192
 
web2py.gluon.html.H4.tag
3193
 
web2py.gluon.html.H5.tag
3194
 
web2py.gluon.html.H6.tag
3195
 
web2py.gluon.html.HEAD.tag
3196
 
web2py.gluon.html.HR.tag
3197
 
web2py.gluon.html.HTML.tag
3198
 
web2py.gluon.html.I.tag
3199
 
web2py.gluon.html.IFRAME.tag
3200
 
web2py.gluon.html.IMG.tag
3201
 
web2py.gluon.html.INPUT.tag
3202
 
web2py.gluon.html.LABEL.tag
3203
 
web2py.gluon.html.LEGEND.tag
3204
 
web2py.gluon.html.LI.tag
3205
 
web2py.gluon.html.LINK.tag
3206
 
web2py.gluon.html.MENU.tag
3207
 
web2py.gluon.html.META.tag
3208
 
web2py.gluon.html.OBJECT.tag
3209
 
web2py.gluon.html.OL.tag
3210
 
web2py.gluon.html.OPTGROUP.tag
3211
 
web2py.gluon.html.OPTION.tag
3212
 
web2py.gluon.html.P.tag
3213
 
web2py.gluon.html.PRE.tag
3214
 
web2py.gluon.html.SCRIPT.tag
3215
 
web2py.gluon.html.SELECT.tag
3216
 
web2py.gluon.html.SPAN.tag
3217
 
web2py.gluon.html.STYLE.tag
3218
 
web2py.gluon.html.TABLE.tag
3219
 
web2py.gluon.html.TBODY.tag
3220
 
web2py.gluon.html.TD.tag
3221
 
web2py.gluon.html.TEXTAREA.tag
3222
 
web2py.gluon.html.TFOOT.tag
3223
 
web2py.gluon.html.TH.tag
3224
 
web2py.gluon.html.THEAD.tag
3225
 
web2py.gluon.html.TITLE.tag
3226
 
web2py.gluon.html.TR.tag
3227
 
web2py.gluon.html.TT.tag
3228
 
web2py.gluon.html.UL.tag
3229
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-264', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
3230
 
<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
3231
 
<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-265" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
3232
 
web2py.gluon.dal.NoSQLAdapter.DIV
3233
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-265', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="web2py.gluon.dal.Rows.xml
3234
 
web2py.gluon.html.A.xml
3235
 
web2py.gluon.html.CODE.xml
3236
 
web2py.gluon.html.DIV.xml
3237
 
web2py.gluon.html.FORM.xml
3238
 
web2py.gluon.html.HTML.xml
3239
 
web2py.gluon.html.INPUT.xml
3240
 
web2py.gluon.html.MARKMIN.xml
3241
 
web2py.gluon.html.MENU.xml
3242
 
web2py.gluon.html.P.xml
3243
 
web2py.gluon.html.SCRIPT.xml
3244
 
web2py.gluon.html.STYLE.xml
3245
 
web2py.gluon.html.XHTML.xml
3246
 
web2py.gluon.html.XML.xml
3247
 
web2py.gluon.html.XmlComponent.xml
3248
 
web2py.gluon.languages.lazyT.xml
3249
 
web2py.gluon.serializers.xml
3250
 
web2py.gluon.tools.Recaptcha.xml
3251
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-266', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
3252
 
</div></div><a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"> </tt>
3253
 
<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"> </tt>
3254
 
<a name="IMG"></a><div id="IMG-def"><a name="L1199"></a><tt class="py-lineno">1199</tt> <a class="py-toggle" href="#" id="IMG-toggle" onclick="return toggle('IMG');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.IMG-class.html">IMG</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3255
 
</div><div id="IMG-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="IMG-expanded"><a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line"> </tt>
3256
 
<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt id="link-267" class="py-name"><a title="web2py.gluon.html.A.tag
3257
 
web2py.gluon.html.B.tag
3258
 
web2py.gluon.html.BEAUTIFY.tag
3259
 
web2py.gluon.html.BODY.tag
3260
 
web2py.gluon.html.BR.tag
3261
 
web2py.gluon.html.BUTTON.tag
3262
 
web2py.gluon.html.CAT.tag
3263
 
web2py.gluon.html.CENTER.tag
3264
 
web2py.gluon.html.COL.tag
3265
 
web2py.gluon.html.COLGROUP.tag
3266
 
web2py.gluon.html.DIV.tag
3267
 
web2py.gluon.html.EM.tag
3268
 
web2py.gluon.html.EMBED.tag
3269
 
web2py.gluon.html.FIELDSET.tag
3270
 
web2py.gluon.html.FORM.tag
3271
 
web2py.gluon.html.H1.tag
3272
 
web2py.gluon.html.H2.tag
3273
 
web2py.gluon.html.H3.tag
3274
 
web2py.gluon.html.H4.tag
3275
 
web2py.gluon.html.H5.tag
3276
 
web2py.gluon.html.H6.tag
3277
 
web2py.gluon.html.HEAD.tag
3278
 
web2py.gluon.html.HR.tag
3279
 
web2py.gluon.html.HTML.tag
3280
 
web2py.gluon.html.I.tag
3281
 
web2py.gluon.html.IFRAME.tag
3282
 
web2py.gluon.html.IMG.tag
3283
 
web2py.gluon.html.INPUT.tag
3284
 
web2py.gluon.html.LABEL.tag
3285
 
web2py.gluon.html.LEGEND.tag
3286
 
web2py.gluon.html.LI.tag
3287
 
web2py.gluon.html.LINK.tag
3288
 
web2py.gluon.html.MENU.tag
3289
 
web2py.gluon.html.META.tag
3290
 
web2py.gluon.html.OBJECT.tag
3291
 
web2py.gluon.html.OL.tag
3292
 
web2py.gluon.html.OPTGROUP.tag
3293
 
web2py.gluon.html.OPTION.tag
3294
 
web2py.gluon.html.P.tag
3295
 
web2py.gluon.html.PRE.tag
3296
 
web2py.gluon.html.SCRIPT.tag
3297
 
web2py.gluon.html.SELECT.tag
3298
 
web2py.gluon.html.SPAN.tag
3299
 
web2py.gluon.html.STYLE.tag
3300
 
web2py.gluon.html.TABLE.tag
3301
 
web2py.gluon.html.TBODY.tag
3302
 
web2py.gluon.html.TD.tag
3303
 
web2py.gluon.html.TEXTAREA.tag
3304
 
web2py.gluon.html.TFOOT.tag
3305
 
web2py.gluon.html.TH.tag
3306
 
web2py.gluon.html.THEAD.tag
3307
 
web2py.gluon.html.TITLE.tag
3308
 
web2py.gluon.html.TR.tag
3309
 
web2py.gluon.html.TT.tag
3310
 
web2py.gluon.html.UL.tag
3311
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-267', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'img/'</tt> </tt>
3312
 
</div><a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line"> </tt>
3313
 
<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"> </tt>
3314
 
<a name="SPAN"></a><div id="SPAN-def"><a name="L1204"></a><tt class="py-lineno">1204</tt> <a class="py-toggle" href="#" id="SPAN-toggle" onclick="return toggle('SPAN');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SPAN-class.html">SPAN</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3315
 
</div><div id="SPAN-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SPAN-expanded"><a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"> </tt>
3316
 
<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">    <tt id="link-268" class="py-name"><a title="web2py.gluon.html.A.tag
3317
 
web2py.gluon.html.B.tag
3318
 
web2py.gluon.html.BEAUTIFY.tag
3319
 
web2py.gluon.html.BODY.tag
3320
 
web2py.gluon.html.BR.tag
3321
 
web2py.gluon.html.BUTTON.tag
3322
 
web2py.gluon.html.CAT.tag
3323
 
web2py.gluon.html.CENTER.tag
3324
 
web2py.gluon.html.COL.tag
3325
 
web2py.gluon.html.COLGROUP.tag
3326
 
web2py.gluon.html.DIV.tag
3327
 
web2py.gluon.html.EM.tag
3328
 
web2py.gluon.html.EMBED.tag
3329
 
web2py.gluon.html.FIELDSET.tag
3330
 
web2py.gluon.html.FORM.tag
3331
 
web2py.gluon.html.H1.tag
3332
 
web2py.gluon.html.H2.tag
3333
 
web2py.gluon.html.H3.tag
3334
 
web2py.gluon.html.H4.tag
3335
 
web2py.gluon.html.H5.tag
3336
 
web2py.gluon.html.H6.tag
3337
 
web2py.gluon.html.HEAD.tag
3338
 
web2py.gluon.html.HR.tag
3339
 
web2py.gluon.html.HTML.tag
3340
 
web2py.gluon.html.I.tag
3341
 
web2py.gluon.html.IFRAME.tag
3342
 
web2py.gluon.html.IMG.tag
3343
 
web2py.gluon.html.INPUT.tag
3344
 
web2py.gluon.html.LABEL.tag
3345
 
web2py.gluon.html.LEGEND.tag
3346
 
web2py.gluon.html.LI.tag
3347
 
web2py.gluon.html.LINK.tag
3348
 
web2py.gluon.html.MENU.tag
3349
 
web2py.gluon.html.META.tag
3350
 
web2py.gluon.html.OBJECT.tag
3351
 
web2py.gluon.html.OL.tag
3352
 
web2py.gluon.html.OPTGROUP.tag
3353
 
web2py.gluon.html.OPTION.tag
3354
 
web2py.gluon.html.P.tag
3355
 
web2py.gluon.html.PRE.tag
3356
 
web2py.gluon.html.SCRIPT.tag
3357
 
web2py.gluon.html.SELECT.tag
3358
 
web2py.gluon.html.SPAN.tag
3359
 
web2py.gluon.html.STYLE.tag
3360
 
web2py.gluon.html.TABLE.tag
3361
 
web2py.gluon.html.TBODY.tag
3362
 
web2py.gluon.html.TD.tag
3363
 
web2py.gluon.html.TEXTAREA.tag
3364
 
web2py.gluon.html.TFOOT.tag
3365
 
web2py.gluon.html.TH.tag
3366
 
web2py.gluon.html.THEAD.tag
3367
 
web2py.gluon.html.TITLE.tag
3368
 
web2py.gluon.html.TR.tag
3369
 
web2py.gluon.html.TT.tag
3370
 
web2py.gluon.html.UL.tag
3371
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-268', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
3372
 
</div><a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line"> </tt>
3373
 
<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"> </tt>
3374
 
<a name="BODY"></a><div id="BODY-def"><a name="L1209"></a><tt class="py-lineno">1209</tt> <a class="py-toggle" href="#" id="BODY-toggle" onclick="return toggle('BODY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BODY-class.html">BODY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3375
 
</div><div id="BODY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BODY-expanded"><a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"> </tt>
3376
 
<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">    <tt id="link-269" class="py-name"><a title="web2py.gluon.html.A.tag
3377
 
web2py.gluon.html.B.tag
3378
 
web2py.gluon.html.BEAUTIFY.tag
3379
 
web2py.gluon.html.BODY.tag
3380
 
web2py.gluon.html.BR.tag
3381
 
web2py.gluon.html.BUTTON.tag
3382
 
web2py.gluon.html.CAT.tag
3383
 
web2py.gluon.html.CENTER.tag
3384
 
web2py.gluon.html.COL.tag
3385
 
web2py.gluon.html.COLGROUP.tag
3386
 
web2py.gluon.html.DIV.tag
3387
 
web2py.gluon.html.EM.tag
3388
 
web2py.gluon.html.EMBED.tag
3389
 
web2py.gluon.html.FIELDSET.tag
3390
 
web2py.gluon.html.FORM.tag
3391
 
web2py.gluon.html.H1.tag
3392
 
web2py.gluon.html.H2.tag
3393
 
web2py.gluon.html.H3.tag
3394
 
web2py.gluon.html.H4.tag
3395
 
web2py.gluon.html.H5.tag
3396
 
web2py.gluon.html.H6.tag
3397
 
web2py.gluon.html.HEAD.tag
3398
 
web2py.gluon.html.HR.tag
3399
 
web2py.gluon.html.HTML.tag
3400
 
web2py.gluon.html.I.tag
3401
 
web2py.gluon.html.IFRAME.tag
3402
 
web2py.gluon.html.IMG.tag
3403
 
web2py.gluon.html.INPUT.tag
3404
 
web2py.gluon.html.LABEL.tag
3405
 
web2py.gluon.html.LEGEND.tag
3406
 
web2py.gluon.html.LI.tag
3407
 
web2py.gluon.html.LINK.tag
3408
 
web2py.gluon.html.MENU.tag
3409
 
web2py.gluon.html.META.tag
3410
 
web2py.gluon.html.OBJECT.tag
3411
 
web2py.gluon.html.OL.tag
3412
 
web2py.gluon.html.OPTGROUP.tag
3413
 
web2py.gluon.html.OPTION.tag
3414
 
web2py.gluon.html.P.tag
3415
 
web2py.gluon.html.PRE.tag
3416
 
web2py.gluon.html.SCRIPT.tag
3417
 
web2py.gluon.html.SELECT.tag
3418
 
web2py.gluon.html.SPAN.tag
3419
 
web2py.gluon.html.STYLE.tag
3420
 
web2py.gluon.html.TABLE.tag
3421
 
web2py.gluon.html.TBODY.tag
3422
 
web2py.gluon.html.TD.tag
3423
 
web2py.gluon.html.TEXTAREA.tag
3424
 
web2py.gluon.html.TFOOT.tag
3425
 
web2py.gluon.html.TH.tag
3426
 
web2py.gluon.html.THEAD.tag
3427
 
web2py.gluon.html.TITLE.tag
3428
 
web2py.gluon.html.TR.tag
3429
 
web2py.gluon.html.TT.tag
3430
 
web2py.gluon.html.UL.tag
3431
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-269', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'body'</tt> </tt>
3432
 
</div><a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"> </tt>
3433
 
<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line"> </tt>
3434
 
<a name="H1"></a><div id="H1-def"><a name="L1214"></a><tt class="py-lineno">1214</tt> <a class="py-toggle" href="#" id="H1-toggle" onclick="return toggle('H1');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H1-class.html">H1</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3435
 
</div><div id="H1-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H1-expanded"><a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"> </tt>
3436
 
<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">    <tt id="link-270" class="py-name"><a title="web2py.gluon.html.A.tag
3437
 
web2py.gluon.html.B.tag
3438
 
web2py.gluon.html.BEAUTIFY.tag
3439
 
web2py.gluon.html.BODY.tag
3440
 
web2py.gluon.html.BR.tag
3441
 
web2py.gluon.html.BUTTON.tag
3442
 
web2py.gluon.html.CAT.tag
3443
 
web2py.gluon.html.CENTER.tag
3444
 
web2py.gluon.html.COL.tag
3445
 
web2py.gluon.html.COLGROUP.tag
3446
 
web2py.gluon.html.DIV.tag
3447
 
web2py.gluon.html.EM.tag
3448
 
web2py.gluon.html.EMBED.tag
3449
 
web2py.gluon.html.FIELDSET.tag
3450
 
web2py.gluon.html.FORM.tag
3451
 
web2py.gluon.html.H1.tag
3452
 
web2py.gluon.html.H2.tag
3453
 
web2py.gluon.html.H3.tag
3454
 
web2py.gluon.html.H4.tag
3455
 
web2py.gluon.html.H5.tag
3456
 
web2py.gluon.html.H6.tag
3457
 
web2py.gluon.html.HEAD.tag
3458
 
web2py.gluon.html.HR.tag
3459
 
web2py.gluon.html.HTML.tag
3460
 
web2py.gluon.html.I.tag
3461
 
web2py.gluon.html.IFRAME.tag
3462
 
web2py.gluon.html.IMG.tag
3463
 
web2py.gluon.html.INPUT.tag
3464
 
web2py.gluon.html.LABEL.tag
3465
 
web2py.gluon.html.LEGEND.tag
3466
 
web2py.gluon.html.LI.tag
3467
 
web2py.gluon.html.LINK.tag
3468
 
web2py.gluon.html.MENU.tag
3469
 
web2py.gluon.html.META.tag
3470
 
web2py.gluon.html.OBJECT.tag
3471
 
web2py.gluon.html.OL.tag
3472
 
web2py.gluon.html.OPTGROUP.tag
3473
 
web2py.gluon.html.OPTION.tag
3474
 
web2py.gluon.html.P.tag
3475
 
web2py.gluon.html.PRE.tag
3476
 
web2py.gluon.html.SCRIPT.tag
3477
 
web2py.gluon.html.SELECT.tag
3478
 
web2py.gluon.html.SPAN.tag
3479
 
web2py.gluon.html.STYLE.tag
3480
 
web2py.gluon.html.TABLE.tag
3481
 
web2py.gluon.html.TBODY.tag
3482
 
web2py.gluon.html.TD.tag
3483
 
web2py.gluon.html.TEXTAREA.tag
3484
 
web2py.gluon.html.TFOOT.tag
3485
 
web2py.gluon.html.TH.tag
3486
 
web2py.gluon.html.THEAD.tag
3487
 
web2py.gluon.html.TITLE.tag
3488
 
web2py.gluon.html.TR.tag
3489
 
web2py.gluon.html.TT.tag
3490
 
web2py.gluon.html.UL.tag
3491
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-270', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h1'</tt> </tt>
3492
 
</div><a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"> </tt>
3493
 
<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"> </tt>
3494
 
<a name="H2"></a><div id="H2-def"><a name="L1219"></a><tt class="py-lineno">1219</tt> <a class="py-toggle" href="#" id="H2-toggle" onclick="return toggle('H2');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H2-class.html">H2</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3495
 
</div><div id="H2-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H2-expanded"><a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"> </tt>
3496
 
<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">    <tt id="link-271" class="py-name"><a title="web2py.gluon.html.A.tag
3497
 
web2py.gluon.html.B.tag
3498
 
web2py.gluon.html.BEAUTIFY.tag
3499
 
web2py.gluon.html.BODY.tag
3500
 
web2py.gluon.html.BR.tag
3501
 
web2py.gluon.html.BUTTON.tag
3502
 
web2py.gluon.html.CAT.tag
3503
 
web2py.gluon.html.CENTER.tag
3504
 
web2py.gluon.html.COL.tag
3505
 
web2py.gluon.html.COLGROUP.tag
3506
 
web2py.gluon.html.DIV.tag
3507
 
web2py.gluon.html.EM.tag
3508
 
web2py.gluon.html.EMBED.tag
3509
 
web2py.gluon.html.FIELDSET.tag
3510
 
web2py.gluon.html.FORM.tag
3511
 
web2py.gluon.html.H1.tag
3512
 
web2py.gluon.html.H2.tag
3513
 
web2py.gluon.html.H3.tag
3514
 
web2py.gluon.html.H4.tag
3515
 
web2py.gluon.html.H5.tag
3516
 
web2py.gluon.html.H6.tag
3517
 
web2py.gluon.html.HEAD.tag
3518
 
web2py.gluon.html.HR.tag
3519
 
web2py.gluon.html.HTML.tag
3520
 
web2py.gluon.html.I.tag
3521
 
web2py.gluon.html.IFRAME.tag
3522
 
web2py.gluon.html.IMG.tag
3523
 
web2py.gluon.html.INPUT.tag
3524
 
web2py.gluon.html.LABEL.tag
3525
 
web2py.gluon.html.LEGEND.tag
3526
 
web2py.gluon.html.LI.tag
3527
 
web2py.gluon.html.LINK.tag
3528
 
web2py.gluon.html.MENU.tag
3529
 
web2py.gluon.html.META.tag
3530
 
web2py.gluon.html.OBJECT.tag
3531
 
web2py.gluon.html.OL.tag
3532
 
web2py.gluon.html.OPTGROUP.tag
3533
 
web2py.gluon.html.OPTION.tag
3534
 
web2py.gluon.html.P.tag
3535
 
web2py.gluon.html.PRE.tag
3536
 
web2py.gluon.html.SCRIPT.tag
3537
 
web2py.gluon.html.SELECT.tag
3538
 
web2py.gluon.html.SPAN.tag
3539
 
web2py.gluon.html.STYLE.tag
3540
 
web2py.gluon.html.TABLE.tag
3541
 
web2py.gluon.html.TBODY.tag
3542
 
web2py.gluon.html.TD.tag
3543
 
web2py.gluon.html.TEXTAREA.tag
3544
 
web2py.gluon.html.TFOOT.tag
3545
 
web2py.gluon.html.TH.tag
3546
 
web2py.gluon.html.THEAD.tag
3547
 
web2py.gluon.html.TITLE.tag
3548
 
web2py.gluon.html.TR.tag
3549
 
web2py.gluon.html.TT.tag
3550
 
web2py.gluon.html.UL.tag
3551
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-271', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h2'</tt> </tt>
3552
 
</div><a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"> </tt>
3553
 
<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"> </tt>
3554
 
<a name="H3"></a><div id="H3-def"><a name="L1224"></a><tt class="py-lineno">1224</tt> <a class="py-toggle" href="#" id="H3-toggle" onclick="return toggle('H3');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H3-class.html">H3</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3555
 
</div><div id="H3-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H3-expanded"><a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"> </tt>
3556
 
<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">    <tt id="link-272" class="py-name"><a title="web2py.gluon.html.A.tag
3557
 
web2py.gluon.html.B.tag
3558
 
web2py.gluon.html.BEAUTIFY.tag
3559
 
web2py.gluon.html.BODY.tag
3560
 
web2py.gluon.html.BR.tag
3561
 
web2py.gluon.html.BUTTON.tag
3562
 
web2py.gluon.html.CAT.tag
3563
 
web2py.gluon.html.CENTER.tag
3564
 
web2py.gluon.html.COL.tag
3565
 
web2py.gluon.html.COLGROUP.tag
3566
 
web2py.gluon.html.DIV.tag
3567
 
web2py.gluon.html.EM.tag
3568
 
web2py.gluon.html.EMBED.tag
3569
 
web2py.gluon.html.FIELDSET.tag
3570
 
web2py.gluon.html.FORM.tag
3571
 
web2py.gluon.html.H1.tag
3572
 
web2py.gluon.html.H2.tag
3573
 
web2py.gluon.html.H3.tag
3574
 
web2py.gluon.html.H4.tag
3575
 
web2py.gluon.html.H5.tag
3576
 
web2py.gluon.html.H6.tag
3577
 
web2py.gluon.html.HEAD.tag
3578
 
web2py.gluon.html.HR.tag
3579
 
web2py.gluon.html.HTML.tag
3580
 
web2py.gluon.html.I.tag
3581
 
web2py.gluon.html.IFRAME.tag
3582
 
web2py.gluon.html.IMG.tag
3583
 
web2py.gluon.html.INPUT.tag
3584
 
web2py.gluon.html.LABEL.tag
3585
 
web2py.gluon.html.LEGEND.tag
3586
 
web2py.gluon.html.LI.tag
3587
 
web2py.gluon.html.LINK.tag
3588
 
web2py.gluon.html.MENU.tag
3589
 
web2py.gluon.html.META.tag
3590
 
web2py.gluon.html.OBJECT.tag
3591
 
web2py.gluon.html.OL.tag
3592
 
web2py.gluon.html.OPTGROUP.tag
3593
 
web2py.gluon.html.OPTION.tag
3594
 
web2py.gluon.html.P.tag
3595
 
web2py.gluon.html.PRE.tag
3596
 
web2py.gluon.html.SCRIPT.tag
3597
 
web2py.gluon.html.SELECT.tag
3598
 
web2py.gluon.html.SPAN.tag
3599
 
web2py.gluon.html.STYLE.tag
3600
 
web2py.gluon.html.TABLE.tag
3601
 
web2py.gluon.html.TBODY.tag
3602
 
web2py.gluon.html.TD.tag
3603
 
web2py.gluon.html.TEXTAREA.tag
3604
 
web2py.gluon.html.TFOOT.tag
3605
 
web2py.gluon.html.TH.tag
3606
 
web2py.gluon.html.THEAD.tag
3607
 
web2py.gluon.html.TITLE.tag
3608
 
web2py.gluon.html.TR.tag
3609
 
web2py.gluon.html.TT.tag
3610
 
web2py.gluon.html.UL.tag
3611
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-272', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h3'</tt> </tt>
3612
 
</div><a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"> </tt>
3613
 
<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line"> </tt>
3614
 
<a name="H4"></a><div id="H4-def"><a name="L1229"></a><tt class="py-lineno">1229</tt> <a class="py-toggle" href="#" id="H4-toggle" onclick="return toggle('H4');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H4-class.html">H4</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3615
 
</div><div id="H4-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H4-expanded"><a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line"> </tt>
3616
 
<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">    <tt id="link-273" class="py-name"><a title="web2py.gluon.html.A.tag
3617
 
web2py.gluon.html.B.tag
3618
 
web2py.gluon.html.BEAUTIFY.tag
3619
 
web2py.gluon.html.BODY.tag
3620
 
web2py.gluon.html.BR.tag
3621
 
web2py.gluon.html.BUTTON.tag
3622
 
web2py.gluon.html.CAT.tag
3623
 
web2py.gluon.html.CENTER.tag
3624
 
web2py.gluon.html.COL.tag
3625
 
web2py.gluon.html.COLGROUP.tag
3626
 
web2py.gluon.html.DIV.tag
3627
 
web2py.gluon.html.EM.tag
3628
 
web2py.gluon.html.EMBED.tag
3629
 
web2py.gluon.html.FIELDSET.tag
3630
 
web2py.gluon.html.FORM.tag
3631
 
web2py.gluon.html.H1.tag
3632
 
web2py.gluon.html.H2.tag
3633
 
web2py.gluon.html.H3.tag
3634
 
web2py.gluon.html.H4.tag
3635
 
web2py.gluon.html.H5.tag
3636
 
web2py.gluon.html.H6.tag
3637
 
web2py.gluon.html.HEAD.tag
3638
 
web2py.gluon.html.HR.tag
3639
 
web2py.gluon.html.HTML.tag
3640
 
web2py.gluon.html.I.tag
3641
 
web2py.gluon.html.IFRAME.tag
3642
 
web2py.gluon.html.IMG.tag
3643
 
web2py.gluon.html.INPUT.tag
3644
 
web2py.gluon.html.LABEL.tag
3645
 
web2py.gluon.html.LEGEND.tag
3646
 
web2py.gluon.html.LI.tag
3647
 
web2py.gluon.html.LINK.tag
3648
 
web2py.gluon.html.MENU.tag
3649
 
web2py.gluon.html.META.tag
3650
 
web2py.gluon.html.OBJECT.tag
3651
 
web2py.gluon.html.OL.tag
3652
 
web2py.gluon.html.OPTGROUP.tag
3653
 
web2py.gluon.html.OPTION.tag
3654
 
web2py.gluon.html.P.tag
3655
 
web2py.gluon.html.PRE.tag
3656
 
web2py.gluon.html.SCRIPT.tag
3657
 
web2py.gluon.html.SELECT.tag
3658
 
web2py.gluon.html.SPAN.tag
3659
 
web2py.gluon.html.STYLE.tag
3660
 
web2py.gluon.html.TABLE.tag
3661
 
web2py.gluon.html.TBODY.tag
3662
 
web2py.gluon.html.TD.tag
3663
 
web2py.gluon.html.TEXTAREA.tag
3664
 
web2py.gluon.html.TFOOT.tag
3665
 
web2py.gluon.html.TH.tag
3666
 
web2py.gluon.html.THEAD.tag
3667
 
web2py.gluon.html.TITLE.tag
3668
 
web2py.gluon.html.TR.tag
3669
 
web2py.gluon.html.TT.tag
3670
 
web2py.gluon.html.UL.tag
3671
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-273', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h4'</tt> </tt>
3672
 
</div><a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line"> </tt>
3673
 
<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"> </tt>
3674
 
<a name="H5"></a><div id="H5-def"><a name="L1234"></a><tt class="py-lineno">1234</tt> <a class="py-toggle" href="#" id="H5-toggle" onclick="return toggle('H5');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H5-class.html">H5</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3675
 
</div><div id="H5-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H5-expanded"><a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"> </tt>
3676
 
<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">    <tt id="link-274" class="py-name"><a title="web2py.gluon.html.A.tag
3677
 
web2py.gluon.html.B.tag
3678
 
web2py.gluon.html.BEAUTIFY.tag
3679
 
web2py.gluon.html.BODY.tag
3680
 
web2py.gluon.html.BR.tag
3681
 
web2py.gluon.html.BUTTON.tag
3682
 
web2py.gluon.html.CAT.tag
3683
 
web2py.gluon.html.CENTER.tag
3684
 
web2py.gluon.html.COL.tag
3685
 
web2py.gluon.html.COLGROUP.tag
3686
 
web2py.gluon.html.DIV.tag
3687
 
web2py.gluon.html.EM.tag
3688
 
web2py.gluon.html.EMBED.tag
3689
 
web2py.gluon.html.FIELDSET.tag
3690
 
web2py.gluon.html.FORM.tag
3691
 
web2py.gluon.html.H1.tag
3692
 
web2py.gluon.html.H2.tag
3693
 
web2py.gluon.html.H3.tag
3694
 
web2py.gluon.html.H4.tag
3695
 
web2py.gluon.html.H5.tag
3696
 
web2py.gluon.html.H6.tag
3697
 
web2py.gluon.html.HEAD.tag
3698
 
web2py.gluon.html.HR.tag
3699
 
web2py.gluon.html.HTML.tag
3700
 
web2py.gluon.html.I.tag
3701
 
web2py.gluon.html.IFRAME.tag
3702
 
web2py.gluon.html.IMG.tag
3703
 
web2py.gluon.html.INPUT.tag
3704
 
web2py.gluon.html.LABEL.tag
3705
 
web2py.gluon.html.LEGEND.tag
3706
 
web2py.gluon.html.LI.tag
3707
 
web2py.gluon.html.LINK.tag
3708
 
web2py.gluon.html.MENU.tag
3709
 
web2py.gluon.html.META.tag
3710
 
web2py.gluon.html.OBJECT.tag
3711
 
web2py.gluon.html.OL.tag
3712
 
web2py.gluon.html.OPTGROUP.tag
3713
 
web2py.gluon.html.OPTION.tag
3714
 
web2py.gluon.html.P.tag
3715
 
web2py.gluon.html.PRE.tag
3716
 
web2py.gluon.html.SCRIPT.tag
3717
 
web2py.gluon.html.SELECT.tag
3718
 
web2py.gluon.html.SPAN.tag
3719
 
web2py.gluon.html.STYLE.tag
3720
 
web2py.gluon.html.TABLE.tag
3721
 
web2py.gluon.html.TBODY.tag
3722
 
web2py.gluon.html.TD.tag
3723
 
web2py.gluon.html.TEXTAREA.tag
3724
 
web2py.gluon.html.TFOOT.tag
3725
 
web2py.gluon.html.TH.tag
3726
 
web2py.gluon.html.THEAD.tag
3727
 
web2py.gluon.html.TITLE.tag
3728
 
web2py.gluon.html.TR.tag
3729
 
web2py.gluon.html.TT.tag
3730
 
web2py.gluon.html.UL.tag
3731
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-274', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h5'</tt> </tt>
3732
 
</div><a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"> </tt>
3733
 
<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"> </tt>
3734
 
<a name="H6"></a><div id="H6-def"><a name="L1239"></a><tt class="py-lineno">1239</tt> <a class="py-toggle" href="#" id="H6-toggle" onclick="return toggle('H6');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H6-class.html">H6</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3735
 
</div><div id="H6-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H6-expanded"><a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line"> </tt>
3736
 
<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">    <tt id="link-275" class="py-name"><a title="web2py.gluon.html.A.tag
3737
 
web2py.gluon.html.B.tag
3738
 
web2py.gluon.html.BEAUTIFY.tag
3739
 
web2py.gluon.html.BODY.tag
3740
 
web2py.gluon.html.BR.tag
3741
 
web2py.gluon.html.BUTTON.tag
3742
 
web2py.gluon.html.CAT.tag
3743
 
web2py.gluon.html.CENTER.tag
3744
 
web2py.gluon.html.COL.tag
3745
 
web2py.gluon.html.COLGROUP.tag
3746
 
web2py.gluon.html.DIV.tag
3747
 
web2py.gluon.html.EM.tag
3748
 
web2py.gluon.html.EMBED.tag
3749
 
web2py.gluon.html.FIELDSET.tag
3750
 
web2py.gluon.html.FORM.tag
3751
 
web2py.gluon.html.H1.tag
3752
 
web2py.gluon.html.H2.tag
3753
 
web2py.gluon.html.H3.tag
3754
 
web2py.gluon.html.H4.tag
3755
 
web2py.gluon.html.H5.tag
3756
 
web2py.gluon.html.H6.tag
3757
 
web2py.gluon.html.HEAD.tag
3758
 
web2py.gluon.html.HR.tag
3759
 
web2py.gluon.html.HTML.tag
3760
 
web2py.gluon.html.I.tag
3761
 
web2py.gluon.html.IFRAME.tag
3762
 
web2py.gluon.html.IMG.tag
3763
 
web2py.gluon.html.INPUT.tag
3764
 
web2py.gluon.html.LABEL.tag
3765
 
web2py.gluon.html.LEGEND.tag
3766
 
web2py.gluon.html.LI.tag
3767
 
web2py.gluon.html.LINK.tag
3768
 
web2py.gluon.html.MENU.tag
3769
 
web2py.gluon.html.META.tag
3770
 
web2py.gluon.html.OBJECT.tag
3771
 
web2py.gluon.html.OL.tag
3772
 
web2py.gluon.html.OPTGROUP.tag
3773
 
web2py.gluon.html.OPTION.tag
3774
 
web2py.gluon.html.P.tag
3775
 
web2py.gluon.html.PRE.tag
3776
 
web2py.gluon.html.SCRIPT.tag
3777
 
web2py.gluon.html.SELECT.tag
3778
 
web2py.gluon.html.SPAN.tag
3779
 
web2py.gluon.html.STYLE.tag
3780
 
web2py.gluon.html.TABLE.tag
3781
 
web2py.gluon.html.TBODY.tag
3782
 
web2py.gluon.html.TD.tag
3783
 
web2py.gluon.html.TEXTAREA.tag
3784
 
web2py.gluon.html.TFOOT.tag
3785
 
web2py.gluon.html.TH.tag
3786
 
web2py.gluon.html.THEAD.tag
3787
 
web2py.gluon.html.TITLE.tag
3788
 
web2py.gluon.html.TR.tag
3789
 
web2py.gluon.html.TT.tag
3790
 
web2py.gluon.html.UL.tag
3791
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-275', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h6'</tt> </tt>
3792
 
</div><a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"> </tt>
3793
 
<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"> </tt>
3794
 
<a name="P"></a><div id="P-def"><a name="L1244"></a><tt class="py-lineno">1244</tt> <a class="py-toggle" href="#" id="P-toggle" onclick="return toggle('P');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.P-class.html">P</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3795
 
</div><div id="P-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="P-expanded"><a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
3796
 
<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line"><tt class="py-docstring">    Will replace ``\\n`` by ``&lt;br /&gt;`` if the `cr2br` attribute is provided.</tt> </tt>
3797
 
<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
3798
 
<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
3799
 
<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
2497
<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xmlns'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="web2py.gluon.html.XHTML.xmlns" class="py-name" href="#" onclick="return doclink('link-231', 'xmlns', 'link-227');">xmlns</a></tt> </tt>
 
2498
<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'lang'</tt><tt class="py-op">]</tt> </tt>
 
2499
<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">lang</tt><tt class="py-op">:</tt> </tt>
 
2500
<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">            <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-string">'en'</tt> </tt>
 
2501
<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
 
2502
<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_xml:lang'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lang</tt> </tt>
 
2503
<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">        <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'doctype'</tt><tt class="py-op">]</tt> </tt>
 
2504
<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt><tt class="py-op">:</tt> </tt>
 
2505
<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'strict'</tt><tt class="py-op">:</tt> </tt>
 
2506
<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="web2py.gluon.html.HTML.strict
 
2507
web2py.gluon.html.XHTML.strict" class="py-name" href="#" onclick="return doclink('link-232', 'strict', 'link-211');">strict</a></tt> </tt>
 
2508
<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'transitional'</tt><tt class="py-op">:</tt> </tt>
 
2509
<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="web2py.gluon.html.HTML.transitional
 
2510
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-233', 'transitional', 'link-212');">transitional</a></tt> </tt>
 
2511
<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">doctype</tt> <tt class="py-op">==</tt> <tt class="py-string">'frameset'</tt><tt class="py-op">:</tt> </tt>
 
2512
<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="web2py.gluon.html.HTML.frameset
 
2513
web2py.gluon.html.XHTML.frameset" class="py-name" href="#" onclick="return doclink('link-234', 'frameset', 'link-213');">frameset</a></tt> </tt>
 
2514
<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
2515
<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">                <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">doctype</tt> </tt>
 
2516
<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
2517
<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">            <tt class="py-name">doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="web2py.gluon.html.HTML.transitional
 
2518
web2py.gluon.html.XHTML.transitional" class="py-name" href="#" onclick="return doclink('link-235', 'transitional', 'link-212');">transitional</a></tt> </tt>
 
2519
<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-236', '_xml', 'link-118');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
2520
<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'%s&lt;%s%s&gt;%s&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">doctype</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="web2py.gluon.html.A.tag
 
2521
web2py.gluon.html.B.tag
 
2522
web2py.gluon.html.BEAUTIFY.tag
 
2523
web2py.gluon.html.BODY.tag
 
2524
web2py.gluon.html.BR.tag
 
2525
web2py.gluon.html.BUTTON.tag
 
2526
web2py.gluon.html.CAT.tag
 
2527
web2py.gluon.html.CENTER.tag
 
2528
web2py.gluon.html.COL.tag
 
2529
web2py.gluon.html.COLGROUP.tag
 
2530
web2py.gluon.html.DIV.tag
 
2531
web2py.gluon.html.EM.tag
 
2532
web2py.gluon.html.EMBED.tag
 
2533
web2py.gluon.html.FIELDSET.tag
 
2534
web2py.gluon.html.FORM.tag
 
2535
web2py.gluon.html.H1.tag
 
2536
web2py.gluon.html.H2.tag
 
2537
web2py.gluon.html.H3.tag
 
2538
web2py.gluon.html.H4.tag
 
2539
web2py.gluon.html.H5.tag
 
2540
web2py.gluon.html.H6.tag
 
2541
web2py.gluon.html.HEAD.tag
 
2542
web2py.gluon.html.HR.tag
 
2543
web2py.gluon.html.HTML.tag
 
2544
web2py.gluon.html.I.tag
 
2545
web2py.gluon.html.IFRAME.tag
 
2546
web2py.gluon.html.IMG.tag
 
2547
web2py.gluon.html.INPUT.tag
 
2548
web2py.gluon.html.LABEL.tag
 
2549
web2py.gluon.html.LEGEND.tag
 
2550
web2py.gluon.html.LI.tag
 
2551
web2py.gluon.html.LINK.tag
 
2552
web2py.gluon.html.MENU.tag
 
2553
web2py.gluon.html.META.tag
 
2554
web2py.gluon.html.OBJECT.tag
 
2555
web2py.gluon.html.OL.tag
 
2556
web2py.gluon.html.OPTGROUP.tag
 
2557
web2py.gluon.html.OPTION.tag
 
2558
web2py.gluon.html.P.tag
 
2559
web2py.gluon.html.PRE.tag
 
2560
web2py.gluon.html.SCRIPT.tag
 
2561
web2py.gluon.html.SELECT.tag
 
2562
web2py.gluon.html.SPAN.tag
 
2563
web2py.gluon.html.STYLE.tag
 
2564
web2py.gluon.html.TABLE.tag
 
2565
web2py.gluon.html.TBODY.tag
 
2566
web2py.gluon.html.TD.tag
 
2567
web2py.gluon.html.TEXTAREA.tag
 
2568
web2py.gluon.html.TFOOT.tag
 
2569
web2py.gluon.html.TH.tag
 
2570
web2py.gluon.html.THEAD.tag
 
2571
web2py.gluon.html.TITLE.tag
 
2572
web2py.gluon.html.TR.tag
 
2573
web2py.gluon.html.TT.tag
 
2574
web2py.gluon.html.UL.tag
 
2575
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-237', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="web2py.gluon.html.A.tag
 
2576
web2py.gluon.html.B.tag
 
2577
web2py.gluon.html.BEAUTIFY.tag
 
2578
web2py.gluon.html.BODY.tag
 
2579
web2py.gluon.html.BR.tag
 
2580
web2py.gluon.html.BUTTON.tag
 
2581
web2py.gluon.html.CAT.tag
 
2582
web2py.gluon.html.CENTER.tag
 
2583
web2py.gluon.html.COL.tag
 
2584
web2py.gluon.html.COLGROUP.tag
 
2585
web2py.gluon.html.DIV.tag
 
2586
web2py.gluon.html.EM.tag
 
2587
web2py.gluon.html.EMBED.tag
 
2588
web2py.gluon.html.FIELDSET.tag
 
2589
web2py.gluon.html.FORM.tag
 
2590
web2py.gluon.html.H1.tag
 
2591
web2py.gluon.html.H2.tag
 
2592
web2py.gluon.html.H3.tag
 
2593
web2py.gluon.html.H4.tag
 
2594
web2py.gluon.html.H5.tag
 
2595
web2py.gluon.html.H6.tag
 
2596
web2py.gluon.html.HEAD.tag
 
2597
web2py.gluon.html.HR.tag
 
2598
web2py.gluon.html.HTML.tag
 
2599
web2py.gluon.html.I.tag
 
2600
web2py.gluon.html.IFRAME.tag
 
2601
web2py.gluon.html.IMG.tag
 
2602
web2py.gluon.html.INPUT.tag
 
2603
web2py.gluon.html.LABEL.tag
 
2604
web2py.gluon.html.LEGEND.tag
 
2605
web2py.gluon.html.LI.tag
 
2606
web2py.gluon.html.LINK.tag
 
2607
web2py.gluon.html.MENU.tag
 
2608
web2py.gluon.html.META.tag
 
2609
web2py.gluon.html.OBJECT.tag
 
2610
web2py.gluon.html.OL.tag
 
2611
web2py.gluon.html.OPTGROUP.tag
 
2612
web2py.gluon.html.OPTION.tag
 
2613
web2py.gluon.html.P.tag
 
2614
web2py.gluon.html.PRE.tag
 
2615
web2py.gluon.html.SCRIPT.tag
 
2616
web2py.gluon.html.SELECT.tag
 
2617
web2py.gluon.html.SPAN.tag
 
2618
web2py.gluon.html.STYLE.tag
 
2619
web2py.gluon.html.TABLE.tag
 
2620
web2py.gluon.html.TBODY.tag
 
2621
web2py.gluon.html.TD.tag
 
2622
web2py.gluon.html.TEXTAREA.tag
 
2623
web2py.gluon.html.TFOOT.tag
 
2624
web2py.gluon.html.TH.tag
 
2625
web2py.gluon.html.THEAD.tag
 
2626
web2py.gluon.html.TITLE.tag
 
2627
web2py.gluon.html.TR.tag
 
2628
web2py.gluon.html.TT.tag
 
2629
web2py.gluon.html.UL.tag
 
2630
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-238', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
2631
</div></div><a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"> </tt>
 
2632
<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"> </tt>
 
2633
<a name="HEAD"></a><div id="HEAD-def"><a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="HEAD-toggle" onclick="return toggle('HEAD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HEAD-class.html">HEAD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2634
</div><div id="HEAD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HEAD-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"> </tt>
 
2635
<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt id="link-239" class="py-name"><a title="web2py.gluon.html.A.tag
 
2636
web2py.gluon.html.B.tag
 
2637
web2py.gluon.html.BEAUTIFY.tag
 
2638
web2py.gluon.html.BODY.tag
 
2639
web2py.gluon.html.BR.tag
 
2640
web2py.gluon.html.BUTTON.tag
 
2641
web2py.gluon.html.CAT.tag
 
2642
web2py.gluon.html.CENTER.tag
 
2643
web2py.gluon.html.COL.tag
 
2644
web2py.gluon.html.COLGROUP.tag
 
2645
web2py.gluon.html.DIV.tag
 
2646
web2py.gluon.html.EM.tag
 
2647
web2py.gluon.html.EMBED.tag
 
2648
web2py.gluon.html.FIELDSET.tag
 
2649
web2py.gluon.html.FORM.tag
 
2650
web2py.gluon.html.H1.tag
 
2651
web2py.gluon.html.H2.tag
 
2652
web2py.gluon.html.H3.tag
 
2653
web2py.gluon.html.H4.tag
 
2654
web2py.gluon.html.H5.tag
 
2655
web2py.gluon.html.H6.tag
 
2656
web2py.gluon.html.HEAD.tag
 
2657
web2py.gluon.html.HR.tag
 
2658
web2py.gluon.html.HTML.tag
 
2659
web2py.gluon.html.I.tag
 
2660
web2py.gluon.html.IFRAME.tag
 
2661
web2py.gluon.html.IMG.tag
 
2662
web2py.gluon.html.INPUT.tag
 
2663
web2py.gluon.html.LABEL.tag
 
2664
web2py.gluon.html.LEGEND.tag
 
2665
web2py.gluon.html.LI.tag
 
2666
web2py.gluon.html.LINK.tag
 
2667
web2py.gluon.html.MENU.tag
 
2668
web2py.gluon.html.META.tag
 
2669
web2py.gluon.html.OBJECT.tag
 
2670
web2py.gluon.html.OL.tag
 
2671
web2py.gluon.html.OPTGROUP.tag
 
2672
web2py.gluon.html.OPTION.tag
 
2673
web2py.gluon.html.P.tag
 
2674
web2py.gluon.html.PRE.tag
 
2675
web2py.gluon.html.SCRIPT.tag
 
2676
web2py.gluon.html.SELECT.tag
 
2677
web2py.gluon.html.SPAN.tag
 
2678
web2py.gluon.html.STYLE.tag
 
2679
web2py.gluon.html.TABLE.tag
 
2680
web2py.gluon.html.TBODY.tag
 
2681
web2py.gluon.html.TD.tag
 
2682
web2py.gluon.html.TEXTAREA.tag
 
2683
web2py.gluon.html.TFOOT.tag
 
2684
web2py.gluon.html.TH.tag
 
2685
web2py.gluon.html.THEAD.tag
 
2686
web2py.gluon.html.TITLE.tag
 
2687
web2py.gluon.html.TR.tag
 
2688
web2py.gluon.html.TT.tag
 
2689
web2py.gluon.html.UL.tag
 
2690
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-239', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'head'</tt> </tt>
 
2691
</div><a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"> </tt>
 
2692
<a name="TITLE"></a><div id="TITLE-def"><a name="L1164"></a><tt class="py-lineno">1164</tt> <a class="py-toggle" href="#" id="TITLE-toggle" onclick="return toggle('TITLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TITLE-class.html">TITLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2693
</div><div id="TITLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TITLE-expanded"><a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"> </tt>
 
2694
<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt id="link-240" class="py-name"><a title="web2py.gluon.html.A.tag
 
2695
web2py.gluon.html.B.tag
 
2696
web2py.gluon.html.BEAUTIFY.tag
 
2697
web2py.gluon.html.BODY.tag
 
2698
web2py.gluon.html.BR.tag
 
2699
web2py.gluon.html.BUTTON.tag
 
2700
web2py.gluon.html.CAT.tag
 
2701
web2py.gluon.html.CENTER.tag
 
2702
web2py.gluon.html.COL.tag
 
2703
web2py.gluon.html.COLGROUP.tag
 
2704
web2py.gluon.html.DIV.tag
 
2705
web2py.gluon.html.EM.tag
 
2706
web2py.gluon.html.EMBED.tag
 
2707
web2py.gluon.html.FIELDSET.tag
 
2708
web2py.gluon.html.FORM.tag
 
2709
web2py.gluon.html.H1.tag
 
2710
web2py.gluon.html.H2.tag
 
2711
web2py.gluon.html.H3.tag
 
2712
web2py.gluon.html.H4.tag
 
2713
web2py.gluon.html.H5.tag
 
2714
web2py.gluon.html.H6.tag
 
2715
web2py.gluon.html.HEAD.tag
 
2716
web2py.gluon.html.HR.tag
 
2717
web2py.gluon.html.HTML.tag
 
2718
web2py.gluon.html.I.tag
 
2719
web2py.gluon.html.IFRAME.tag
 
2720
web2py.gluon.html.IMG.tag
 
2721
web2py.gluon.html.INPUT.tag
 
2722
web2py.gluon.html.LABEL.tag
 
2723
web2py.gluon.html.LEGEND.tag
 
2724
web2py.gluon.html.LI.tag
 
2725
web2py.gluon.html.LINK.tag
 
2726
web2py.gluon.html.MENU.tag
 
2727
web2py.gluon.html.META.tag
 
2728
web2py.gluon.html.OBJECT.tag
 
2729
web2py.gluon.html.OL.tag
 
2730
web2py.gluon.html.OPTGROUP.tag
 
2731
web2py.gluon.html.OPTION.tag
 
2732
web2py.gluon.html.P.tag
 
2733
web2py.gluon.html.PRE.tag
 
2734
web2py.gluon.html.SCRIPT.tag
 
2735
web2py.gluon.html.SELECT.tag
 
2736
web2py.gluon.html.SPAN.tag
 
2737
web2py.gluon.html.STYLE.tag
 
2738
web2py.gluon.html.TABLE.tag
 
2739
web2py.gluon.html.TBODY.tag
 
2740
web2py.gluon.html.TD.tag
 
2741
web2py.gluon.html.TEXTAREA.tag
 
2742
web2py.gluon.html.TFOOT.tag
 
2743
web2py.gluon.html.TH.tag
 
2744
web2py.gluon.html.THEAD.tag
 
2745
web2py.gluon.html.TITLE.tag
 
2746
web2py.gluon.html.TR.tag
 
2747
web2py.gluon.html.TT.tag
 
2748
web2py.gluon.html.UL.tag
 
2749
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-240', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'title'</tt> </tt>
 
2750
</div><a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"> </tt>
 
2751
<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
 
2752
<a name="META"></a><div id="META-def"><a name="L1169"></a><tt class="py-lineno">1169</tt> <a class="py-toggle" href="#" id="META-toggle" onclick="return toggle('META');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.META-class.html">META</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2753
</div><div id="META-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="META-expanded"><a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"> </tt>
 
2754
<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">    <tt id="link-241" class="py-name"><a title="web2py.gluon.html.A.tag
 
2755
web2py.gluon.html.B.tag
 
2756
web2py.gluon.html.BEAUTIFY.tag
 
2757
web2py.gluon.html.BODY.tag
 
2758
web2py.gluon.html.BR.tag
 
2759
web2py.gluon.html.BUTTON.tag
 
2760
web2py.gluon.html.CAT.tag
 
2761
web2py.gluon.html.CENTER.tag
 
2762
web2py.gluon.html.COL.tag
 
2763
web2py.gluon.html.COLGROUP.tag
 
2764
web2py.gluon.html.DIV.tag
 
2765
web2py.gluon.html.EM.tag
 
2766
web2py.gluon.html.EMBED.tag
 
2767
web2py.gluon.html.FIELDSET.tag
 
2768
web2py.gluon.html.FORM.tag
 
2769
web2py.gluon.html.H1.tag
 
2770
web2py.gluon.html.H2.tag
 
2771
web2py.gluon.html.H3.tag
 
2772
web2py.gluon.html.H4.tag
 
2773
web2py.gluon.html.H5.tag
 
2774
web2py.gluon.html.H6.tag
 
2775
web2py.gluon.html.HEAD.tag
 
2776
web2py.gluon.html.HR.tag
 
2777
web2py.gluon.html.HTML.tag
 
2778
web2py.gluon.html.I.tag
 
2779
web2py.gluon.html.IFRAME.tag
 
2780
web2py.gluon.html.IMG.tag
 
2781
web2py.gluon.html.INPUT.tag
 
2782
web2py.gluon.html.LABEL.tag
 
2783
web2py.gluon.html.LEGEND.tag
 
2784
web2py.gluon.html.LI.tag
 
2785
web2py.gluon.html.LINK.tag
 
2786
web2py.gluon.html.MENU.tag
 
2787
web2py.gluon.html.META.tag
 
2788
web2py.gluon.html.OBJECT.tag
 
2789
web2py.gluon.html.OL.tag
 
2790
web2py.gluon.html.OPTGROUP.tag
 
2791
web2py.gluon.html.OPTION.tag
 
2792
web2py.gluon.html.P.tag
 
2793
web2py.gluon.html.PRE.tag
 
2794
web2py.gluon.html.SCRIPT.tag
 
2795
web2py.gluon.html.SELECT.tag
 
2796
web2py.gluon.html.SPAN.tag
 
2797
web2py.gluon.html.STYLE.tag
 
2798
web2py.gluon.html.TABLE.tag
 
2799
web2py.gluon.html.TBODY.tag
 
2800
web2py.gluon.html.TD.tag
 
2801
web2py.gluon.html.TEXTAREA.tag
 
2802
web2py.gluon.html.TFOOT.tag
 
2803
web2py.gluon.html.TH.tag
 
2804
web2py.gluon.html.THEAD.tag
 
2805
web2py.gluon.html.TITLE.tag
 
2806
web2py.gluon.html.TR.tag
 
2807
web2py.gluon.html.TT.tag
 
2808
web2py.gluon.html.UL.tag
 
2809
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-241', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'meta/'</tt> </tt>
 
2810
</div><a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"> </tt>
 
2811
<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"> </tt>
 
2812
<a name="LINK"></a><div id="LINK-def"><a name="L1174"></a><tt class="py-lineno">1174</tt> <a class="py-toggle" href="#" id="LINK-toggle" onclick="return toggle('LINK');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LINK-class.html">LINK</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2813
</div><div id="LINK-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LINK-expanded"><a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"> </tt>
 
2814
<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">    <tt id="link-242" class="py-name"><a title="web2py.gluon.html.A.tag
 
2815
web2py.gluon.html.B.tag
 
2816
web2py.gluon.html.BEAUTIFY.tag
 
2817
web2py.gluon.html.BODY.tag
 
2818
web2py.gluon.html.BR.tag
 
2819
web2py.gluon.html.BUTTON.tag
 
2820
web2py.gluon.html.CAT.tag
 
2821
web2py.gluon.html.CENTER.tag
 
2822
web2py.gluon.html.COL.tag
 
2823
web2py.gluon.html.COLGROUP.tag
 
2824
web2py.gluon.html.DIV.tag
 
2825
web2py.gluon.html.EM.tag
 
2826
web2py.gluon.html.EMBED.tag
 
2827
web2py.gluon.html.FIELDSET.tag
 
2828
web2py.gluon.html.FORM.tag
 
2829
web2py.gluon.html.H1.tag
 
2830
web2py.gluon.html.H2.tag
 
2831
web2py.gluon.html.H3.tag
 
2832
web2py.gluon.html.H4.tag
 
2833
web2py.gluon.html.H5.tag
 
2834
web2py.gluon.html.H6.tag
 
2835
web2py.gluon.html.HEAD.tag
 
2836
web2py.gluon.html.HR.tag
 
2837
web2py.gluon.html.HTML.tag
 
2838
web2py.gluon.html.I.tag
 
2839
web2py.gluon.html.IFRAME.tag
 
2840
web2py.gluon.html.IMG.tag
 
2841
web2py.gluon.html.INPUT.tag
 
2842
web2py.gluon.html.LABEL.tag
 
2843
web2py.gluon.html.LEGEND.tag
 
2844
web2py.gluon.html.LI.tag
 
2845
web2py.gluon.html.LINK.tag
 
2846
web2py.gluon.html.MENU.tag
 
2847
web2py.gluon.html.META.tag
 
2848
web2py.gluon.html.OBJECT.tag
 
2849
web2py.gluon.html.OL.tag
 
2850
web2py.gluon.html.OPTGROUP.tag
 
2851
web2py.gluon.html.OPTION.tag
 
2852
web2py.gluon.html.P.tag
 
2853
web2py.gluon.html.PRE.tag
 
2854
web2py.gluon.html.SCRIPT.tag
 
2855
web2py.gluon.html.SELECT.tag
 
2856
web2py.gluon.html.SPAN.tag
 
2857
web2py.gluon.html.STYLE.tag
 
2858
web2py.gluon.html.TABLE.tag
 
2859
web2py.gluon.html.TBODY.tag
 
2860
web2py.gluon.html.TD.tag
 
2861
web2py.gluon.html.TEXTAREA.tag
 
2862
web2py.gluon.html.TFOOT.tag
 
2863
web2py.gluon.html.TH.tag
 
2864
web2py.gluon.html.THEAD.tag
 
2865
web2py.gluon.html.TITLE.tag
 
2866
web2py.gluon.html.TR.tag
 
2867
web2py.gluon.html.TT.tag
 
2868
web2py.gluon.html.UL.tag
 
2869
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-242', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'link/'</tt> </tt>
 
2870
</div><a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"> </tt>
 
2871
<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"> </tt>
 
2872
<a name="SCRIPT"></a><div id="SCRIPT-def"><a name="L1179"></a><tt class="py-lineno">1179</tt> <a class="py-toggle" href="#" id="SCRIPT-toggle" onclick="return toggle('SCRIPT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SCRIPT-class.html">SCRIPT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2873
</div><div id="SCRIPT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SCRIPT-expanded"><a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"> </tt>
 
2874
<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">    <tt id="link-243" class="py-name"><a title="web2py.gluon.html.A.tag
 
2875
web2py.gluon.html.B.tag
 
2876
web2py.gluon.html.BEAUTIFY.tag
 
2877
web2py.gluon.html.BODY.tag
 
2878
web2py.gluon.html.BR.tag
 
2879
web2py.gluon.html.BUTTON.tag
 
2880
web2py.gluon.html.CAT.tag
 
2881
web2py.gluon.html.CENTER.tag
 
2882
web2py.gluon.html.COL.tag
 
2883
web2py.gluon.html.COLGROUP.tag
 
2884
web2py.gluon.html.DIV.tag
 
2885
web2py.gluon.html.EM.tag
 
2886
web2py.gluon.html.EMBED.tag
 
2887
web2py.gluon.html.FIELDSET.tag
 
2888
web2py.gluon.html.FORM.tag
 
2889
web2py.gluon.html.H1.tag
 
2890
web2py.gluon.html.H2.tag
 
2891
web2py.gluon.html.H3.tag
 
2892
web2py.gluon.html.H4.tag
 
2893
web2py.gluon.html.H5.tag
 
2894
web2py.gluon.html.H6.tag
 
2895
web2py.gluon.html.HEAD.tag
 
2896
web2py.gluon.html.HR.tag
 
2897
web2py.gluon.html.HTML.tag
 
2898
web2py.gluon.html.I.tag
 
2899
web2py.gluon.html.IFRAME.tag
 
2900
web2py.gluon.html.IMG.tag
 
2901
web2py.gluon.html.INPUT.tag
 
2902
web2py.gluon.html.LABEL.tag
 
2903
web2py.gluon.html.LEGEND.tag
 
2904
web2py.gluon.html.LI.tag
 
2905
web2py.gluon.html.LINK.tag
 
2906
web2py.gluon.html.MENU.tag
 
2907
web2py.gluon.html.META.tag
 
2908
web2py.gluon.html.OBJECT.tag
 
2909
web2py.gluon.html.OL.tag
 
2910
web2py.gluon.html.OPTGROUP.tag
 
2911
web2py.gluon.html.OPTION.tag
 
2912
web2py.gluon.html.P.tag
 
2913
web2py.gluon.html.PRE.tag
 
2914
web2py.gluon.html.SCRIPT.tag
 
2915
web2py.gluon.html.SELECT.tag
 
2916
web2py.gluon.html.SPAN.tag
 
2917
web2py.gluon.html.STYLE.tag
 
2918
web2py.gluon.html.TABLE.tag
 
2919
web2py.gluon.html.TBODY.tag
 
2920
web2py.gluon.html.TD.tag
 
2921
web2py.gluon.html.TEXTAREA.tag
 
2922
web2py.gluon.html.TFOOT.tag
 
2923
web2py.gluon.html.TH.tag
 
2924
web2py.gluon.html.THEAD.tag
 
2925
web2py.gluon.html.TITLE.tag
 
2926
web2py.gluon.html.TR.tag
 
2927
web2py.gluon.html.TT.tag
 
2928
web2py.gluon.html.UL.tag
 
2929
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-243', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'script'</tt> </tt>
 
2930
<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"> </tt>
 
2931
<a name="SCRIPT.xml"></a><div id="SCRIPT.xml-def"><a name="L1183"></a><tt class="py-lineno">1183</tt> <a class="py-toggle" href="#" id="SCRIPT.xml-toggle" onclick="return toggle('SCRIPT.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SCRIPT-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
2932
</div><div id="SCRIPT.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SCRIPT.xml-expanded"><a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-244', '_xml', 'link-118');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
2933
<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">        <tt class="py-comment"># no escaping of subcomponents</tt> </tt>
 
2934
<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="web2py.gluon.html.join
 
2935
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-245', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
 
2936
<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">                       <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
2937
<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">co</tt><tt class="py-op">:</tt> </tt>
 
2938
<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;script [attributes]&gt;&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--</tt> </tt>
 
2939
<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># script body</tt> </tt>
 
2940
<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># //--&gt;&lt;!]]&gt;&lt;/script&gt;</tt> </tt>
 
2941
<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># return '&lt;%s%s&gt;&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--\n%s\n//--&gt;&lt;!]]&gt;&lt;/%s&gt;' % (self.tag, fa, co, self.tag)</tt> </tt>
 
2942
<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;&lt;!--\n%s\n//--&gt;&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="web2py.gluon.html.A.tag
 
2943
web2py.gluon.html.B.tag
 
2944
web2py.gluon.html.BEAUTIFY.tag
 
2945
web2py.gluon.html.BODY.tag
 
2946
web2py.gluon.html.BR.tag
 
2947
web2py.gluon.html.BUTTON.tag
 
2948
web2py.gluon.html.CAT.tag
 
2949
web2py.gluon.html.CENTER.tag
 
2950
web2py.gluon.html.COL.tag
 
2951
web2py.gluon.html.COLGROUP.tag
 
2952
web2py.gluon.html.DIV.tag
 
2953
web2py.gluon.html.EM.tag
 
2954
web2py.gluon.html.EMBED.tag
 
2955
web2py.gluon.html.FIELDSET.tag
 
2956
web2py.gluon.html.FORM.tag
 
2957
web2py.gluon.html.H1.tag
 
2958
web2py.gluon.html.H2.tag
 
2959
web2py.gluon.html.H3.tag
 
2960
web2py.gluon.html.H4.tag
 
2961
web2py.gluon.html.H5.tag
 
2962
web2py.gluon.html.H6.tag
 
2963
web2py.gluon.html.HEAD.tag
 
2964
web2py.gluon.html.HR.tag
 
2965
web2py.gluon.html.HTML.tag
 
2966
web2py.gluon.html.I.tag
 
2967
web2py.gluon.html.IFRAME.tag
 
2968
web2py.gluon.html.IMG.tag
 
2969
web2py.gluon.html.INPUT.tag
 
2970
web2py.gluon.html.LABEL.tag
 
2971
web2py.gluon.html.LEGEND.tag
 
2972
web2py.gluon.html.LI.tag
 
2973
web2py.gluon.html.LINK.tag
 
2974
web2py.gluon.html.MENU.tag
 
2975
web2py.gluon.html.META.tag
 
2976
web2py.gluon.html.OBJECT.tag
 
2977
web2py.gluon.html.OL.tag
 
2978
web2py.gluon.html.OPTGROUP.tag
 
2979
web2py.gluon.html.OPTION.tag
 
2980
web2py.gluon.html.P.tag
 
2981
web2py.gluon.html.PRE.tag
 
2982
web2py.gluon.html.SCRIPT.tag
 
2983
web2py.gluon.html.SELECT.tag
 
2984
web2py.gluon.html.SPAN.tag
 
2985
web2py.gluon.html.STYLE.tag
 
2986
web2py.gluon.html.TABLE.tag
 
2987
web2py.gluon.html.TBODY.tag
 
2988
web2py.gluon.html.TD.tag
 
2989
web2py.gluon.html.TEXTAREA.tag
 
2990
web2py.gluon.html.TFOOT.tag
 
2991
web2py.gluon.html.TH.tag
 
2992
web2py.gluon.html.THEAD.tag
 
2993
web2py.gluon.html.TITLE.tag
 
2994
web2py.gluon.html.TR.tag
 
2995
web2py.gluon.html.TT.tag
 
2996
web2py.gluon.html.UL.tag
 
2997
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-246', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="web2py.gluon.html.A.tag
 
2998
web2py.gluon.html.B.tag
 
2999
web2py.gluon.html.BEAUTIFY.tag
 
3000
web2py.gluon.html.BODY.tag
 
3001
web2py.gluon.html.BR.tag
 
3002
web2py.gluon.html.BUTTON.tag
 
3003
web2py.gluon.html.CAT.tag
 
3004
web2py.gluon.html.CENTER.tag
 
3005
web2py.gluon.html.COL.tag
 
3006
web2py.gluon.html.COLGROUP.tag
 
3007
web2py.gluon.html.DIV.tag
 
3008
web2py.gluon.html.EM.tag
 
3009
web2py.gluon.html.EMBED.tag
 
3010
web2py.gluon.html.FIELDSET.tag
 
3011
web2py.gluon.html.FORM.tag
 
3012
web2py.gluon.html.H1.tag
 
3013
web2py.gluon.html.H2.tag
 
3014
web2py.gluon.html.H3.tag
 
3015
web2py.gluon.html.H4.tag
 
3016
web2py.gluon.html.H5.tag
 
3017
web2py.gluon.html.H6.tag
 
3018
web2py.gluon.html.HEAD.tag
 
3019
web2py.gluon.html.HR.tag
 
3020
web2py.gluon.html.HTML.tag
 
3021
web2py.gluon.html.I.tag
 
3022
web2py.gluon.html.IFRAME.tag
 
3023
web2py.gluon.html.IMG.tag
 
3024
web2py.gluon.html.INPUT.tag
 
3025
web2py.gluon.html.LABEL.tag
 
3026
web2py.gluon.html.LEGEND.tag
 
3027
web2py.gluon.html.LI.tag
 
3028
web2py.gluon.html.LINK.tag
 
3029
web2py.gluon.html.MENU.tag
 
3030
web2py.gluon.html.META.tag
 
3031
web2py.gluon.html.OBJECT.tag
 
3032
web2py.gluon.html.OL.tag
 
3033
web2py.gluon.html.OPTGROUP.tag
 
3034
web2py.gluon.html.OPTION.tag
 
3035
web2py.gluon.html.P.tag
 
3036
web2py.gluon.html.PRE.tag
 
3037
web2py.gluon.html.SCRIPT.tag
 
3038
web2py.gluon.html.SELECT.tag
 
3039
web2py.gluon.html.SPAN.tag
 
3040
web2py.gluon.html.STYLE.tag
 
3041
web2py.gluon.html.TABLE.tag
 
3042
web2py.gluon.html.TBODY.tag
 
3043
web2py.gluon.html.TD.tag
 
3044
web2py.gluon.html.TEXTAREA.tag
 
3045
web2py.gluon.html.TFOOT.tag
 
3046
web2py.gluon.html.TH.tag
 
3047
web2py.gluon.html.THEAD.tag
 
3048
web2py.gluon.html.TITLE.tag
 
3049
web2py.gluon.html.TR.tag
 
3050
web2py.gluon.html.TT.tag
 
3051
web2py.gluon.html.UL.tag
 
3052
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-247', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
3053
<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
3054
<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-248" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
3055
web2py.gluon.dal.NoSQLAdapter.DIV
 
3056
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-248', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
3057
web2py.gluon.html.A.xml
 
3058
web2py.gluon.html.CODE.xml
 
3059
web2py.gluon.html.DIV.xml
 
3060
web2py.gluon.html.FORM.xml
 
3061
web2py.gluon.html.HTML.xml
 
3062
web2py.gluon.html.INPUT.xml
 
3063
web2py.gluon.html.MARKMIN.xml
 
3064
web2py.gluon.html.MENU.xml
 
3065
web2py.gluon.html.P.xml
 
3066
web2py.gluon.html.SCRIPT.xml
 
3067
web2py.gluon.html.STYLE.xml
 
3068
web2py.gluon.html.XHTML.xml
 
3069
web2py.gluon.html.XML.xml
 
3070
web2py.gluon.html.XmlComponent.xml
 
3071
web2py.gluon.languages.lazyT.xml
 
3072
web2py.gluon.serializers.xml
 
3073
web2py.gluon.tools.Recaptcha.xml
 
3074
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-249', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
3075
</div></div><a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"> </tt>
 
3076
<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"> </tt>
 
3077
<a name="STYLE"></a><div id="STYLE-def"><a name="L1198"></a><tt class="py-lineno">1198</tt> <a class="py-toggle" href="#" id="STYLE-toggle" onclick="return toggle('STYLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.STYLE-class.html">STYLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3078
</div><div id="STYLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="STYLE-expanded"><a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line"> </tt>
 
3079
<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">    <tt id="link-250" class="py-name"><a title="web2py.gluon.html.A.tag
 
3080
web2py.gluon.html.B.tag
 
3081
web2py.gluon.html.BEAUTIFY.tag
 
3082
web2py.gluon.html.BODY.tag
 
3083
web2py.gluon.html.BR.tag
 
3084
web2py.gluon.html.BUTTON.tag
 
3085
web2py.gluon.html.CAT.tag
 
3086
web2py.gluon.html.CENTER.tag
 
3087
web2py.gluon.html.COL.tag
 
3088
web2py.gluon.html.COLGROUP.tag
 
3089
web2py.gluon.html.DIV.tag
 
3090
web2py.gluon.html.EM.tag
 
3091
web2py.gluon.html.EMBED.tag
 
3092
web2py.gluon.html.FIELDSET.tag
 
3093
web2py.gluon.html.FORM.tag
 
3094
web2py.gluon.html.H1.tag
 
3095
web2py.gluon.html.H2.tag
 
3096
web2py.gluon.html.H3.tag
 
3097
web2py.gluon.html.H4.tag
 
3098
web2py.gluon.html.H5.tag
 
3099
web2py.gluon.html.H6.tag
 
3100
web2py.gluon.html.HEAD.tag
 
3101
web2py.gluon.html.HR.tag
 
3102
web2py.gluon.html.HTML.tag
 
3103
web2py.gluon.html.I.tag
 
3104
web2py.gluon.html.IFRAME.tag
 
3105
web2py.gluon.html.IMG.tag
 
3106
web2py.gluon.html.INPUT.tag
 
3107
web2py.gluon.html.LABEL.tag
 
3108
web2py.gluon.html.LEGEND.tag
 
3109
web2py.gluon.html.LI.tag
 
3110
web2py.gluon.html.LINK.tag
 
3111
web2py.gluon.html.MENU.tag
 
3112
web2py.gluon.html.META.tag
 
3113
web2py.gluon.html.OBJECT.tag
 
3114
web2py.gluon.html.OL.tag
 
3115
web2py.gluon.html.OPTGROUP.tag
 
3116
web2py.gluon.html.OPTION.tag
 
3117
web2py.gluon.html.P.tag
 
3118
web2py.gluon.html.PRE.tag
 
3119
web2py.gluon.html.SCRIPT.tag
 
3120
web2py.gluon.html.SELECT.tag
 
3121
web2py.gluon.html.SPAN.tag
 
3122
web2py.gluon.html.STYLE.tag
 
3123
web2py.gluon.html.TABLE.tag
 
3124
web2py.gluon.html.TBODY.tag
 
3125
web2py.gluon.html.TD.tag
 
3126
web2py.gluon.html.TEXTAREA.tag
 
3127
web2py.gluon.html.TFOOT.tag
 
3128
web2py.gluon.html.TH.tag
 
3129
web2py.gluon.html.THEAD.tag
 
3130
web2py.gluon.html.TITLE.tag
 
3131
web2py.gluon.html.TR.tag
 
3132
web2py.gluon.html.TT.tag
 
3133
web2py.gluon.html.UL.tag
 
3134
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-250', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'style'</tt> </tt>
 
3135
<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line"> </tt>
 
3136
<a name="STYLE.xml"></a><div id="STYLE.xml-def"><a name="L1202"></a><tt class="py-lineno">1202</tt> <a class="py-toggle" href="#" id="STYLE.xml-toggle" onclick="return toggle('STYLE.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.STYLE-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3137
</div><div id="STYLE.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="STYLE.xml-expanded"><a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="web2py.gluon.html.DIV._xml" class="py-name" href="#" onclick="return doclink('link-251', '_xml', 'link-118');">_xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
3138
<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-comment"># no escaping of subcomponents</tt> </tt>
 
3139
<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">co</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="web2py.gluon.html.join
 
3140
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-252', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">component</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">component</tt> <tt class="py-keyword">in</tt> </tt>
 
3141
<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">                       <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
3142
<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">co</tt><tt class="py-op">:</tt> </tt>
 
3143
<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">            <tt class="py-comment"># &lt;style [attributes]&gt;&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/</tt> </tt>
 
3144
<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># style body</tt> </tt>
 
3145
<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-comment"># /*]]&gt;*/--&gt;&lt;/style&gt;</tt> </tt>
 
3146
<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/\n%s\n/*]]&gt;*/--&gt;&lt;/%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="web2py.gluon.html.A.tag
 
3147
web2py.gluon.html.B.tag
 
3148
web2py.gluon.html.BEAUTIFY.tag
 
3149
web2py.gluon.html.BODY.tag
 
3150
web2py.gluon.html.BR.tag
 
3151
web2py.gluon.html.BUTTON.tag
 
3152
web2py.gluon.html.CAT.tag
 
3153
web2py.gluon.html.CENTER.tag
 
3154
web2py.gluon.html.COL.tag
 
3155
web2py.gluon.html.COLGROUP.tag
 
3156
web2py.gluon.html.DIV.tag
 
3157
web2py.gluon.html.EM.tag
 
3158
web2py.gluon.html.EMBED.tag
 
3159
web2py.gluon.html.FIELDSET.tag
 
3160
web2py.gluon.html.FORM.tag
 
3161
web2py.gluon.html.H1.tag
 
3162
web2py.gluon.html.H2.tag
 
3163
web2py.gluon.html.H3.tag
 
3164
web2py.gluon.html.H4.tag
 
3165
web2py.gluon.html.H5.tag
 
3166
web2py.gluon.html.H6.tag
 
3167
web2py.gluon.html.HEAD.tag
 
3168
web2py.gluon.html.HR.tag
 
3169
web2py.gluon.html.HTML.tag
 
3170
web2py.gluon.html.I.tag
 
3171
web2py.gluon.html.IFRAME.tag
 
3172
web2py.gluon.html.IMG.tag
 
3173
web2py.gluon.html.INPUT.tag
 
3174
web2py.gluon.html.LABEL.tag
 
3175
web2py.gluon.html.LEGEND.tag
 
3176
web2py.gluon.html.LI.tag
 
3177
web2py.gluon.html.LINK.tag
 
3178
web2py.gluon.html.MENU.tag
 
3179
web2py.gluon.html.META.tag
 
3180
web2py.gluon.html.OBJECT.tag
 
3181
web2py.gluon.html.OL.tag
 
3182
web2py.gluon.html.OPTGROUP.tag
 
3183
web2py.gluon.html.OPTION.tag
 
3184
web2py.gluon.html.P.tag
 
3185
web2py.gluon.html.PRE.tag
 
3186
web2py.gluon.html.SCRIPT.tag
 
3187
web2py.gluon.html.SELECT.tag
 
3188
web2py.gluon.html.SPAN.tag
 
3189
web2py.gluon.html.STYLE.tag
 
3190
web2py.gluon.html.TABLE.tag
 
3191
web2py.gluon.html.TBODY.tag
 
3192
web2py.gluon.html.TD.tag
 
3193
web2py.gluon.html.TEXTAREA.tag
 
3194
web2py.gluon.html.TFOOT.tag
 
3195
web2py.gluon.html.TH.tag
 
3196
web2py.gluon.html.THEAD.tag
 
3197
web2py.gluon.html.TITLE.tag
 
3198
web2py.gluon.html.TR.tag
 
3199
web2py.gluon.html.TT.tag
 
3200
web2py.gluon.html.UL.tag
 
3201
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-253', 'tag', 'link-82');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">fa</tt><tt class="py-op">,</tt> <tt class="py-name">co</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="web2py.gluon.html.A.tag
 
3202
web2py.gluon.html.B.tag
 
3203
web2py.gluon.html.BEAUTIFY.tag
 
3204
web2py.gluon.html.BODY.tag
 
3205
web2py.gluon.html.BR.tag
 
3206
web2py.gluon.html.BUTTON.tag
 
3207
web2py.gluon.html.CAT.tag
 
3208
web2py.gluon.html.CENTER.tag
 
3209
web2py.gluon.html.COL.tag
 
3210
web2py.gluon.html.COLGROUP.tag
 
3211
web2py.gluon.html.DIV.tag
 
3212
web2py.gluon.html.EM.tag
 
3213
web2py.gluon.html.EMBED.tag
 
3214
web2py.gluon.html.FIELDSET.tag
 
3215
web2py.gluon.html.FORM.tag
 
3216
web2py.gluon.html.H1.tag
 
3217
web2py.gluon.html.H2.tag
 
3218
web2py.gluon.html.H3.tag
 
3219
web2py.gluon.html.H4.tag
 
3220
web2py.gluon.html.H5.tag
 
3221
web2py.gluon.html.H6.tag
 
3222
web2py.gluon.html.HEAD.tag
 
3223
web2py.gluon.html.HR.tag
 
3224
web2py.gluon.html.HTML.tag
 
3225
web2py.gluon.html.I.tag
 
3226
web2py.gluon.html.IFRAME.tag
 
3227
web2py.gluon.html.IMG.tag
 
3228
web2py.gluon.html.INPUT.tag
 
3229
web2py.gluon.html.LABEL.tag
 
3230
web2py.gluon.html.LEGEND.tag
 
3231
web2py.gluon.html.LI.tag
 
3232
web2py.gluon.html.LINK.tag
 
3233
web2py.gluon.html.MENU.tag
 
3234
web2py.gluon.html.META.tag
 
3235
web2py.gluon.html.OBJECT.tag
 
3236
web2py.gluon.html.OL.tag
 
3237
web2py.gluon.html.OPTGROUP.tag
 
3238
web2py.gluon.html.OPTION.tag
 
3239
web2py.gluon.html.P.tag
 
3240
web2py.gluon.html.PRE.tag
 
3241
web2py.gluon.html.SCRIPT.tag
 
3242
web2py.gluon.html.SELECT.tag
 
3243
web2py.gluon.html.SPAN.tag
 
3244
web2py.gluon.html.STYLE.tag
 
3245
web2py.gluon.html.TABLE.tag
 
3246
web2py.gluon.html.TBODY.tag
 
3247
web2py.gluon.html.TD.tag
 
3248
web2py.gluon.html.TEXTAREA.tag
 
3249
web2py.gluon.html.TFOOT.tag
 
3250
web2py.gluon.html.TH.tag
 
3251
web2py.gluon.html.THEAD.tag
 
3252
web2py.gluon.html.TITLE.tag
 
3253
web2py.gluon.html.TR.tag
 
3254
web2py.gluon.html.TT.tag
 
3255
web2py.gluon.html.UL.tag
 
3256
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-254', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
3257
<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
3258
<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-255" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
3259
web2py.gluon.dal.NoSQLAdapter.DIV
 
3260
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-255', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
3261
web2py.gluon.html.A.xml
 
3262
web2py.gluon.html.CODE.xml
 
3263
web2py.gluon.html.DIV.xml
 
3264
web2py.gluon.html.FORM.xml
 
3265
web2py.gluon.html.HTML.xml
 
3266
web2py.gluon.html.INPUT.xml
 
3267
web2py.gluon.html.MARKMIN.xml
 
3268
web2py.gluon.html.MENU.xml
 
3269
web2py.gluon.html.P.xml
 
3270
web2py.gluon.html.SCRIPT.xml
 
3271
web2py.gluon.html.STYLE.xml
 
3272
web2py.gluon.html.XHTML.xml
 
3273
web2py.gluon.html.XML.xml
 
3274
web2py.gluon.html.XmlComponent.xml
 
3275
web2py.gluon.languages.lazyT.xml
 
3276
web2py.gluon.serializers.xml
 
3277
web2py.gluon.tools.Recaptcha.xml
 
3278
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-256', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
3279
</div></div><a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"> </tt>
 
3280
<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"> </tt>
 
3281
<a name="IMG"></a><div id="IMG-def"><a name="L1216"></a><tt class="py-lineno">1216</tt> <a class="py-toggle" href="#" id="IMG-toggle" onclick="return toggle('IMG');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.IMG-class.html">IMG</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3282
</div><div id="IMG-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="IMG-expanded"><a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"> </tt>
 
3283
<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">    <tt id="link-257" class="py-name"><a title="web2py.gluon.html.A.tag
 
3284
web2py.gluon.html.B.tag
 
3285
web2py.gluon.html.BEAUTIFY.tag
 
3286
web2py.gluon.html.BODY.tag
 
3287
web2py.gluon.html.BR.tag
 
3288
web2py.gluon.html.BUTTON.tag
 
3289
web2py.gluon.html.CAT.tag
 
3290
web2py.gluon.html.CENTER.tag
 
3291
web2py.gluon.html.COL.tag
 
3292
web2py.gluon.html.COLGROUP.tag
 
3293
web2py.gluon.html.DIV.tag
 
3294
web2py.gluon.html.EM.tag
 
3295
web2py.gluon.html.EMBED.tag
 
3296
web2py.gluon.html.FIELDSET.tag
 
3297
web2py.gluon.html.FORM.tag
 
3298
web2py.gluon.html.H1.tag
 
3299
web2py.gluon.html.H2.tag
 
3300
web2py.gluon.html.H3.tag
 
3301
web2py.gluon.html.H4.tag
 
3302
web2py.gluon.html.H5.tag
 
3303
web2py.gluon.html.H6.tag
 
3304
web2py.gluon.html.HEAD.tag
 
3305
web2py.gluon.html.HR.tag
 
3306
web2py.gluon.html.HTML.tag
 
3307
web2py.gluon.html.I.tag
 
3308
web2py.gluon.html.IFRAME.tag
 
3309
web2py.gluon.html.IMG.tag
 
3310
web2py.gluon.html.INPUT.tag
 
3311
web2py.gluon.html.LABEL.tag
 
3312
web2py.gluon.html.LEGEND.tag
 
3313
web2py.gluon.html.LI.tag
 
3314
web2py.gluon.html.LINK.tag
 
3315
web2py.gluon.html.MENU.tag
 
3316
web2py.gluon.html.META.tag
 
3317
web2py.gluon.html.OBJECT.tag
 
3318
web2py.gluon.html.OL.tag
 
3319
web2py.gluon.html.OPTGROUP.tag
 
3320
web2py.gluon.html.OPTION.tag
 
3321
web2py.gluon.html.P.tag
 
3322
web2py.gluon.html.PRE.tag
 
3323
web2py.gluon.html.SCRIPT.tag
 
3324
web2py.gluon.html.SELECT.tag
 
3325
web2py.gluon.html.SPAN.tag
 
3326
web2py.gluon.html.STYLE.tag
 
3327
web2py.gluon.html.TABLE.tag
 
3328
web2py.gluon.html.TBODY.tag
 
3329
web2py.gluon.html.TD.tag
 
3330
web2py.gluon.html.TEXTAREA.tag
 
3331
web2py.gluon.html.TFOOT.tag
 
3332
web2py.gluon.html.TH.tag
 
3333
web2py.gluon.html.THEAD.tag
 
3334
web2py.gluon.html.TITLE.tag
 
3335
web2py.gluon.html.TR.tag
 
3336
web2py.gluon.html.TT.tag
 
3337
web2py.gluon.html.UL.tag
 
3338
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-257', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'img/'</tt> </tt>
 
3339
</div><a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"> </tt>
 
3340
<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"> </tt>
 
3341
<a name="SPAN"></a><div id="SPAN-def"><a name="L1221"></a><tt class="py-lineno">1221</tt> <a class="py-toggle" href="#" id="SPAN-toggle" onclick="return toggle('SPAN');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SPAN-class.html">SPAN</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3342
</div><div id="SPAN-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SPAN-expanded"><a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"> </tt>
 
3343
<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">    <tt id="link-258" class="py-name"><a title="web2py.gluon.html.A.tag
 
3344
web2py.gluon.html.B.tag
 
3345
web2py.gluon.html.BEAUTIFY.tag
 
3346
web2py.gluon.html.BODY.tag
 
3347
web2py.gluon.html.BR.tag
 
3348
web2py.gluon.html.BUTTON.tag
 
3349
web2py.gluon.html.CAT.tag
 
3350
web2py.gluon.html.CENTER.tag
 
3351
web2py.gluon.html.COL.tag
 
3352
web2py.gluon.html.COLGROUP.tag
 
3353
web2py.gluon.html.DIV.tag
 
3354
web2py.gluon.html.EM.tag
 
3355
web2py.gluon.html.EMBED.tag
 
3356
web2py.gluon.html.FIELDSET.tag
 
3357
web2py.gluon.html.FORM.tag
 
3358
web2py.gluon.html.H1.tag
 
3359
web2py.gluon.html.H2.tag
 
3360
web2py.gluon.html.H3.tag
 
3361
web2py.gluon.html.H4.tag
 
3362
web2py.gluon.html.H5.tag
 
3363
web2py.gluon.html.H6.tag
 
3364
web2py.gluon.html.HEAD.tag
 
3365
web2py.gluon.html.HR.tag
 
3366
web2py.gluon.html.HTML.tag
 
3367
web2py.gluon.html.I.tag
 
3368
web2py.gluon.html.IFRAME.tag
 
3369
web2py.gluon.html.IMG.tag
 
3370
web2py.gluon.html.INPUT.tag
 
3371
web2py.gluon.html.LABEL.tag
 
3372
web2py.gluon.html.LEGEND.tag
 
3373
web2py.gluon.html.LI.tag
 
3374
web2py.gluon.html.LINK.tag
 
3375
web2py.gluon.html.MENU.tag
 
3376
web2py.gluon.html.META.tag
 
3377
web2py.gluon.html.OBJECT.tag
 
3378
web2py.gluon.html.OL.tag
 
3379
web2py.gluon.html.OPTGROUP.tag
 
3380
web2py.gluon.html.OPTION.tag
 
3381
web2py.gluon.html.P.tag
 
3382
web2py.gluon.html.PRE.tag
 
3383
web2py.gluon.html.SCRIPT.tag
 
3384
web2py.gluon.html.SELECT.tag
 
3385
web2py.gluon.html.SPAN.tag
 
3386
web2py.gluon.html.STYLE.tag
 
3387
web2py.gluon.html.TABLE.tag
 
3388
web2py.gluon.html.TBODY.tag
 
3389
web2py.gluon.html.TD.tag
 
3390
web2py.gluon.html.TEXTAREA.tag
 
3391
web2py.gluon.html.TFOOT.tag
 
3392
web2py.gluon.html.TH.tag
 
3393
web2py.gluon.html.THEAD.tag
 
3394
web2py.gluon.html.TITLE.tag
 
3395
web2py.gluon.html.TR.tag
 
3396
web2py.gluon.html.TT.tag
 
3397
web2py.gluon.html.UL.tag
 
3398
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-258', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
 
3399
</div><a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"> </tt>
 
3400
<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"> </tt>
 
3401
<a name="BODY"></a><div id="BODY-def"><a name="L1226"></a><tt class="py-lineno">1226</tt> <a class="py-toggle" href="#" id="BODY-toggle" onclick="return toggle('BODY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BODY-class.html">BODY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3402
</div><div id="BODY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BODY-expanded"><a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"> </tt>
 
3403
<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">    <tt id="link-259" class="py-name"><a title="web2py.gluon.html.A.tag
 
3404
web2py.gluon.html.B.tag
 
3405
web2py.gluon.html.BEAUTIFY.tag
 
3406
web2py.gluon.html.BODY.tag
 
3407
web2py.gluon.html.BR.tag
 
3408
web2py.gluon.html.BUTTON.tag
 
3409
web2py.gluon.html.CAT.tag
 
3410
web2py.gluon.html.CENTER.tag
 
3411
web2py.gluon.html.COL.tag
 
3412
web2py.gluon.html.COLGROUP.tag
 
3413
web2py.gluon.html.DIV.tag
 
3414
web2py.gluon.html.EM.tag
 
3415
web2py.gluon.html.EMBED.tag
 
3416
web2py.gluon.html.FIELDSET.tag
 
3417
web2py.gluon.html.FORM.tag
 
3418
web2py.gluon.html.H1.tag
 
3419
web2py.gluon.html.H2.tag
 
3420
web2py.gluon.html.H3.tag
 
3421
web2py.gluon.html.H4.tag
 
3422
web2py.gluon.html.H5.tag
 
3423
web2py.gluon.html.H6.tag
 
3424
web2py.gluon.html.HEAD.tag
 
3425
web2py.gluon.html.HR.tag
 
3426
web2py.gluon.html.HTML.tag
 
3427
web2py.gluon.html.I.tag
 
3428
web2py.gluon.html.IFRAME.tag
 
3429
web2py.gluon.html.IMG.tag
 
3430
web2py.gluon.html.INPUT.tag
 
3431
web2py.gluon.html.LABEL.tag
 
3432
web2py.gluon.html.LEGEND.tag
 
3433
web2py.gluon.html.LI.tag
 
3434
web2py.gluon.html.LINK.tag
 
3435
web2py.gluon.html.MENU.tag
 
3436
web2py.gluon.html.META.tag
 
3437
web2py.gluon.html.OBJECT.tag
 
3438
web2py.gluon.html.OL.tag
 
3439
web2py.gluon.html.OPTGROUP.tag
 
3440
web2py.gluon.html.OPTION.tag
 
3441
web2py.gluon.html.P.tag
 
3442
web2py.gluon.html.PRE.tag
 
3443
web2py.gluon.html.SCRIPT.tag
 
3444
web2py.gluon.html.SELECT.tag
 
3445
web2py.gluon.html.SPAN.tag
 
3446
web2py.gluon.html.STYLE.tag
 
3447
web2py.gluon.html.TABLE.tag
 
3448
web2py.gluon.html.TBODY.tag
 
3449
web2py.gluon.html.TD.tag
 
3450
web2py.gluon.html.TEXTAREA.tag
 
3451
web2py.gluon.html.TFOOT.tag
 
3452
web2py.gluon.html.TH.tag
 
3453
web2py.gluon.html.THEAD.tag
 
3454
web2py.gluon.html.TITLE.tag
 
3455
web2py.gluon.html.TR.tag
 
3456
web2py.gluon.html.TT.tag
 
3457
web2py.gluon.html.UL.tag
 
3458
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-259', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'body'</tt> </tt>
 
3459
</div><a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"> </tt>
 
3460
<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line"> </tt>
 
3461
<a name="H1"></a><div id="H1-def"><a name="L1231"></a><tt class="py-lineno">1231</tt> <a class="py-toggle" href="#" id="H1-toggle" onclick="return toggle('H1');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H1-class.html">H1</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3462
</div><div id="H1-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H1-expanded"><a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line"> </tt>
 
3463
<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">    <tt id="link-260" class="py-name"><a title="web2py.gluon.html.A.tag
 
3464
web2py.gluon.html.B.tag
 
3465
web2py.gluon.html.BEAUTIFY.tag
 
3466
web2py.gluon.html.BODY.tag
 
3467
web2py.gluon.html.BR.tag
 
3468
web2py.gluon.html.BUTTON.tag
 
3469
web2py.gluon.html.CAT.tag
 
3470
web2py.gluon.html.CENTER.tag
 
3471
web2py.gluon.html.COL.tag
 
3472
web2py.gluon.html.COLGROUP.tag
 
3473
web2py.gluon.html.DIV.tag
 
3474
web2py.gluon.html.EM.tag
 
3475
web2py.gluon.html.EMBED.tag
 
3476
web2py.gluon.html.FIELDSET.tag
 
3477
web2py.gluon.html.FORM.tag
 
3478
web2py.gluon.html.H1.tag
 
3479
web2py.gluon.html.H2.tag
 
3480
web2py.gluon.html.H3.tag
 
3481
web2py.gluon.html.H4.tag
 
3482
web2py.gluon.html.H5.tag
 
3483
web2py.gluon.html.H6.tag
 
3484
web2py.gluon.html.HEAD.tag
 
3485
web2py.gluon.html.HR.tag
 
3486
web2py.gluon.html.HTML.tag
 
3487
web2py.gluon.html.I.tag
 
3488
web2py.gluon.html.IFRAME.tag
 
3489
web2py.gluon.html.IMG.tag
 
3490
web2py.gluon.html.INPUT.tag
 
3491
web2py.gluon.html.LABEL.tag
 
3492
web2py.gluon.html.LEGEND.tag
 
3493
web2py.gluon.html.LI.tag
 
3494
web2py.gluon.html.LINK.tag
 
3495
web2py.gluon.html.MENU.tag
 
3496
web2py.gluon.html.META.tag
 
3497
web2py.gluon.html.OBJECT.tag
 
3498
web2py.gluon.html.OL.tag
 
3499
web2py.gluon.html.OPTGROUP.tag
 
3500
web2py.gluon.html.OPTION.tag
 
3501
web2py.gluon.html.P.tag
 
3502
web2py.gluon.html.PRE.tag
 
3503
web2py.gluon.html.SCRIPT.tag
 
3504
web2py.gluon.html.SELECT.tag
 
3505
web2py.gluon.html.SPAN.tag
 
3506
web2py.gluon.html.STYLE.tag
 
3507
web2py.gluon.html.TABLE.tag
 
3508
web2py.gluon.html.TBODY.tag
 
3509
web2py.gluon.html.TD.tag
 
3510
web2py.gluon.html.TEXTAREA.tag
 
3511
web2py.gluon.html.TFOOT.tag
 
3512
web2py.gluon.html.TH.tag
 
3513
web2py.gluon.html.THEAD.tag
 
3514
web2py.gluon.html.TITLE.tag
 
3515
web2py.gluon.html.TR.tag
 
3516
web2py.gluon.html.TT.tag
 
3517
web2py.gluon.html.UL.tag
 
3518
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-260', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h1'</tt> </tt>
 
3519
</div><a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line"> </tt>
 
3520
<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"> </tt>
 
3521
<a name="H2"></a><div id="H2-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="H2-toggle" onclick="return toggle('H2');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H2-class.html">H2</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3522
</div><div id="H2-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H2-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"> </tt>
 
3523
<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">    <tt id="link-261" class="py-name"><a title="web2py.gluon.html.A.tag
 
3524
web2py.gluon.html.B.tag
 
3525
web2py.gluon.html.BEAUTIFY.tag
 
3526
web2py.gluon.html.BODY.tag
 
3527
web2py.gluon.html.BR.tag
 
3528
web2py.gluon.html.BUTTON.tag
 
3529
web2py.gluon.html.CAT.tag
 
3530
web2py.gluon.html.CENTER.tag
 
3531
web2py.gluon.html.COL.tag
 
3532
web2py.gluon.html.COLGROUP.tag
 
3533
web2py.gluon.html.DIV.tag
 
3534
web2py.gluon.html.EM.tag
 
3535
web2py.gluon.html.EMBED.tag
 
3536
web2py.gluon.html.FIELDSET.tag
 
3537
web2py.gluon.html.FORM.tag
 
3538
web2py.gluon.html.H1.tag
 
3539
web2py.gluon.html.H2.tag
 
3540
web2py.gluon.html.H3.tag
 
3541
web2py.gluon.html.H4.tag
 
3542
web2py.gluon.html.H5.tag
 
3543
web2py.gluon.html.H6.tag
 
3544
web2py.gluon.html.HEAD.tag
 
3545
web2py.gluon.html.HR.tag
 
3546
web2py.gluon.html.HTML.tag
 
3547
web2py.gluon.html.I.tag
 
3548
web2py.gluon.html.IFRAME.tag
 
3549
web2py.gluon.html.IMG.tag
 
3550
web2py.gluon.html.INPUT.tag
 
3551
web2py.gluon.html.LABEL.tag
 
3552
web2py.gluon.html.LEGEND.tag
 
3553
web2py.gluon.html.LI.tag
 
3554
web2py.gluon.html.LINK.tag
 
3555
web2py.gluon.html.MENU.tag
 
3556
web2py.gluon.html.META.tag
 
3557
web2py.gluon.html.OBJECT.tag
 
3558
web2py.gluon.html.OL.tag
 
3559
web2py.gluon.html.OPTGROUP.tag
 
3560
web2py.gluon.html.OPTION.tag
 
3561
web2py.gluon.html.P.tag
 
3562
web2py.gluon.html.PRE.tag
 
3563
web2py.gluon.html.SCRIPT.tag
 
3564
web2py.gluon.html.SELECT.tag
 
3565
web2py.gluon.html.SPAN.tag
 
3566
web2py.gluon.html.STYLE.tag
 
3567
web2py.gluon.html.TABLE.tag
 
3568
web2py.gluon.html.TBODY.tag
 
3569
web2py.gluon.html.TD.tag
 
3570
web2py.gluon.html.TEXTAREA.tag
 
3571
web2py.gluon.html.TFOOT.tag
 
3572
web2py.gluon.html.TH.tag
 
3573
web2py.gluon.html.THEAD.tag
 
3574
web2py.gluon.html.TITLE.tag
 
3575
web2py.gluon.html.TR.tag
 
3576
web2py.gluon.html.TT.tag
 
3577
web2py.gluon.html.UL.tag
 
3578
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-261', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h2'</tt> </tt>
 
3579
</div><a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"> </tt>
 
3580
<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line"> </tt>
 
3581
<a name="H3"></a><div id="H3-def"><a name="L1241"></a><tt class="py-lineno">1241</tt> <a class="py-toggle" href="#" id="H3-toggle" onclick="return toggle('H3');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H3-class.html">H3</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3582
</div><div id="H3-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H3-expanded"><a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"> </tt>
 
3583
<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">    <tt id="link-262" class="py-name"><a title="web2py.gluon.html.A.tag
 
3584
web2py.gluon.html.B.tag
 
3585
web2py.gluon.html.BEAUTIFY.tag
 
3586
web2py.gluon.html.BODY.tag
 
3587
web2py.gluon.html.BR.tag
 
3588
web2py.gluon.html.BUTTON.tag
 
3589
web2py.gluon.html.CAT.tag
 
3590
web2py.gluon.html.CENTER.tag
 
3591
web2py.gluon.html.COL.tag
 
3592
web2py.gluon.html.COLGROUP.tag
 
3593
web2py.gluon.html.DIV.tag
 
3594
web2py.gluon.html.EM.tag
 
3595
web2py.gluon.html.EMBED.tag
 
3596
web2py.gluon.html.FIELDSET.tag
 
3597
web2py.gluon.html.FORM.tag
 
3598
web2py.gluon.html.H1.tag
 
3599
web2py.gluon.html.H2.tag
 
3600
web2py.gluon.html.H3.tag
 
3601
web2py.gluon.html.H4.tag
 
3602
web2py.gluon.html.H5.tag
 
3603
web2py.gluon.html.H6.tag
 
3604
web2py.gluon.html.HEAD.tag
 
3605
web2py.gluon.html.HR.tag
 
3606
web2py.gluon.html.HTML.tag
 
3607
web2py.gluon.html.I.tag
 
3608
web2py.gluon.html.IFRAME.tag
 
3609
web2py.gluon.html.IMG.tag
 
3610
web2py.gluon.html.INPUT.tag
 
3611
web2py.gluon.html.LABEL.tag
 
3612
web2py.gluon.html.LEGEND.tag
 
3613
web2py.gluon.html.LI.tag
 
3614
web2py.gluon.html.LINK.tag
 
3615
web2py.gluon.html.MENU.tag
 
3616
web2py.gluon.html.META.tag
 
3617
web2py.gluon.html.OBJECT.tag
 
3618
web2py.gluon.html.OL.tag
 
3619
web2py.gluon.html.OPTGROUP.tag
 
3620
web2py.gluon.html.OPTION.tag
 
3621
web2py.gluon.html.P.tag
 
3622
web2py.gluon.html.PRE.tag
 
3623
web2py.gluon.html.SCRIPT.tag
 
3624
web2py.gluon.html.SELECT.tag
 
3625
web2py.gluon.html.SPAN.tag
 
3626
web2py.gluon.html.STYLE.tag
 
3627
web2py.gluon.html.TABLE.tag
 
3628
web2py.gluon.html.TBODY.tag
 
3629
web2py.gluon.html.TD.tag
 
3630
web2py.gluon.html.TEXTAREA.tag
 
3631
web2py.gluon.html.TFOOT.tag
 
3632
web2py.gluon.html.TH.tag
 
3633
web2py.gluon.html.THEAD.tag
 
3634
web2py.gluon.html.TITLE.tag
 
3635
web2py.gluon.html.TR.tag
 
3636
web2py.gluon.html.TT.tag
 
3637
web2py.gluon.html.UL.tag
 
3638
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-262', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h3'</tt> </tt>
 
3639
</div><a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"> </tt>
 
3640
<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"> </tt>
 
3641
<a name="H4"></a><div id="H4-def"><a name="L1246"></a><tt class="py-lineno">1246</tt> <a class="py-toggle" href="#" id="H4-toggle" onclick="return toggle('H4');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H4-class.html">H4</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3642
</div><div id="H4-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H4-expanded"><a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"> </tt>
 
3643
<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">    <tt id="link-263" class="py-name"><a title="web2py.gluon.html.A.tag
 
3644
web2py.gluon.html.B.tag
 
3645
web2py.gluon.html.BEAUTIFY.tag
 
3646
web2py.gluon.html.BODY.tag
 
3647
web2py.gluon.html.BR.tag
 
3648
web2py.gluon.html.BUTTON.tag
 
3649
web2py.gluon.html.CAT.tag
 
3650
web2py.gluon.html.CENTER.tag
 
3651
web2py.gluon.html.COL.tag
 
3652
web2py.gluon.html.COLGROUP.tag
 
3653
web2py.gluon.html.DIV.tag
 
3654
web2py.gluon.html.EM.tag
 
3655
web2py.gluon.html.EMBED.tag
 
3656
web2py.gluon.html.FIELDSET.tag
 
3657
web2py.gluon.html.FORM.tag
 
3658
web2py.gluon.html.H1.tag
 
3659
web2py.gluon.html.H2.tag
 
3660
web2py.gluon.html.H3.tag
 
3661
web2py.gluon.html.H4.tag
 
3662
web2py.gluon.html.H5.tag
 
3663
web2py.gluon.html.H6.tag
 
3664
web2py.gluon.html.HEAD.tag
 
3665
web2py.gluon.html.HR.tag
 
3666
web2py.gluon.html.HTML.tag
 
3667
web2py.gluon.html.I.tag
 
3668
web2py.gluon.html.IFRAME.tag
 
3669
web2py.gluon.html.IMG.tag
 
3670
web2py.gluon.html.INPUT.tag
 
3671
web2py.gluon.html.LABEL.tag
 
3672
web2py.gluon.html.LEGEND.tag
 
3673
web2py.gluon.html.LI.tag
 
3674
web2py.gluon.html.LINK.tag
 
3675
web2py.gluon.html.MENU.tag
 
3676
web2py.gluon.html.META.tag
 
3677
web2py.gluon.html.OBJECT.tag
 
3678
web2py.gluon.html.OL.tag
 
3679
web2py.gluon.html.OPTGROUP.tag
 
3680
web2py.gluon.html.OPTION.tag
 
3681
web2py.gluon.html.P.tag
 
3682
web2py.gluon.html.PRE.tag
 
3683
web2py.gluon.html.SCRIPT.tag
 
3684
web2py.gluon.html.SELECT.tag
 
3685
web2py.gluon.html.SPAN.tag
 
3686
web2py.gluon.html.STYLE.tag
 
3687
web2py.gluon.html.TABLE.tag
 
3688
web2py.gluon.html.TBODY.tag
 
3689
web2py.gluon.html.TD.tag
 
3690
web2py.gluon.html.TEXTAREA.tag
 
3691
web2py.gluon.html.TFOOT.tag
 
3692
web2py.gluon.html.TH.tag
 
3693
web2py.gluon.html.THEAD.tag
 
3694
web2py.gluon.html.TITLE.tag
 
3695
web2py.gluon.html.TR.tag
 
3696
web2py.gluon.html.TT.tag
 
3697
web2py.gluon.html.UL.tag
 
3698
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-263', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h4'</tt> </tt>
 
3699
</div><a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line"> </tt>
3800
3700
<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line"> </tt>
3801
 
<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">    <tt id="link-276" class="py-name"><a title="web2py.gluon.html.A.tag
3802
 
web2py.gluon.html.B.tag
3803
 
web2py.gluon.html.BEAUTIFY.tag
3804
 
web2py.gluon.html.BODY.tag
3805
 
web2py.gluon.html.BR.tag
3806
 
web2py.gluon.html.BUTTON.tag
3807
 
web2py.gluon.html.CAT.tag
3808
 
web2py.gluon.html.CENTER.tag
3809
 
web2py.gluon.html.COL.tag
3810
 
web2py.gluon.html.COLGROUP.tag
3811
 
web2py.gluon.html.DIV.tag
3812
 
web2py.gluon.html.EM.tag
3813
 
web2py.gluon.html.EMBED.tag
3814
 
web2py.gluon.html.FIELDSET.tag
3815
 
web2py.gluon.html.FORM.tag
3816
 
web2py.gluon.html.H1.tag
3817
 
web2py.gluon.html.H2.tag
3818
 
web2py.gluon.html.H3.tag
3819
 
web2py.gluon.html.H4.tag
3820
 
web2py.gluon.html.H5.tag
3821
 
web2py.gluon.html.H6.tag
3822
 
web2py.gluon.html.HEAD.tag
3823
 
web2py.gluon.html.HR.tag
3824
 
web2py.gluon.html.HTML.tag
3825
 
web2py.gluon.html.I.tag
3826
 
web2py.gluon.html.IFRAME.tag
3827
 
web2py.gluon.html.IMG.tag
3828
 
web2py.gluon.html.INPUT.tag
3829
 
web2py.gluon.html.LABEL.tag
3830
 
web2py.gluon.html.LEGEND.tag
3831
 
web2py.gluon.html.LI.tag
3832
 
web2py.gluon.html.LINK.tag
3833
 
web2py.gluon.html.MENU.tag
3834
 
web2py.gluon.html.META.tag
3835
 
web2py.gluon.html.OBJECT.tag
3836
 
web2py.gluon.html.OL.tag
3837
 
web2py.gluon.html.OPTGROUP.tag
3838
 
web2py.gluon.html.OPTION.tag
3839
 
web2py.gluon.html.P.tag
3840
 
web2py.gluon.html.PRE.tag
3841
 
web2py.gluon.html.SCRIPT.tag
3842
 
web2py.gluon.html.SELECT.tag
3843
 
web2py.gluon.html.SPAN.tag
3844
 
web2py.gluon.html.STYLE.tag
3845
 
web2py.gluon.html.TABLE.tag
3846
 
web2py.gluon.html.TBODY.tag
3847
 
web2py.gluon.html.TD.tag
3848
 
web2py.gluon.html.TEXTAREA.tag
3849
 
web2py.gluon.html.TFOOT.tag
3850
 
web2py.gluon.html.TH.tag
3851
 
web2py.gluon.html.THEAD.tag
3852
 
web2py.gluon.html.TITLE.tag
3853
 
web2py.gluon.html.TR.tag
3854
 
web2py.gluon.html.TT.tag
3855
 
web2py.gluon.html.UL.tag
3856
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-276', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'p'</tt> </tt>
3857
 
<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line"> </tt>
3858
 
<a name="P.xml"></a><div id="P.xml-def"><a name="L1253"></a><tt class="py-lineno">1253</tt> <a class="py-toggle" href="#" id="P.xml-toggle" onclick="return toggle('P.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.P-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3859
 
</div><div id="P.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="P.xml-expanded"><a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
3860
 
web2py.gluon.dal.NoSQLAdapter.DIV
3861
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-277', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-278" class="py-name"><a title="web2py.gluon.dal.Rows.xml
3862
 
web2py.gluon.html.A.xml
3863
 
web2py.gluon.html.CODE.xml
3864
 
web2py.gluon.html.DIV.xml
3865
 
web2py.gluon.html.FORM.xml
3866
 
web2py.gluon.html.HTML.xml
3867
 
web2py.gluon.html.INPUT.xml
3868
 
web2py.gluon.html.MARKMIN.xml
3869
 
web2py.gluon.html.MENU.xml
3870
 
web2py.gluon.html.P.xml
3871
 
web2py.gluon.html.SCRIPT.xml
3872
 
web2py.gluon.html.STYLE.xml
3873
 
web2py.gluon.html.XHTML.xml
3874
 
web2py.gluon.html.XML.xml
3875
 
web2py.gluon.html.XmlComponent.xml
3876
 
web2py.gluon.languages.lazyT.xml
3877
 
web2py.gluon.serializers.xml
3878
 
web2py.gluon.tools.Recaptcha.xml
3879
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-278', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
3880
 
<a name="L1255"></a><tt class="py-lineno">1255</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-string">'cr2br'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
3881
 
<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;br /&gt;'</tt><tt class="py-op">)</tt> </tt>
3882
 
<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
3883
 
</div></div><a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"> </tt>
3884
 
<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"> </tt>
3885
 
<a name="B"></a><div id="B-def"><a name="L1260"></a><tt class="py-lineno">1260</tt> <a class="py-toggle" href="#" id="B-toggle" onclick="return toggle('B');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.B-class.html">B</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3886
 
</div><div id="B-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="B-expanded"><a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"> </tt>
3887
 
<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">    <tt id="link-279" class="py-name"><a title="web2py.gluon.html.A.tag
3888
 
web2py.gluon.html.B.tag
3889
 
web2py.gluon.html.BEAUTIFY.tag
3890
 
web2py.gluon.html.BODY.tag
3891
 
web2py.gluon.html.BR.tag
3892
 
web2py.gluon.html.BUTTON.tag
3893
 
web2py.gluon.html.CAT.tag
3894
 
web2py.gluon.html.CENTER.tag
3895
 
web2py.gluon.html.COL.tag
3896
 
web2py.gluon.html.COLGROUP.tag
3897
 
web2py.gluon.html.DIV.tag
3898
 
web2py.gluon.html.EM.tag
3899
 
web2py.gluon.html.EMBED.tag
3900
 
web2py.gluon.html.FIELDSET.tag
3901
 
web2py.gluon.html.FORM.tag
3902
 
web2py.gluon.html.H1.tag
3903
 
web2py.gluon.html.H2.tag
3904
 
web2py.gluon.html.H3.tag
3905
 
web2py.gluon.html.H4.tag
3906
 
web2py.gluon.html.H5.tag
3907
 
web2py.gluon.html.H6.tag
3908
 
web2py.gluon.html.HEAD.tag
3909
 
web2py.gluon.html.HR.tag
3910
 
web2py.gluon.html.HTML.tag
3911
 
web2py.gluon.html.I.tag
3912
 
web2py.gluon.html.IFRAME.tag
3913
 
web2py.gluon.html.IMG.tag
3914
 
web2py.gluon.html.INPUT.tag
3915
 
web2py.gluon.html.LABEL.tag
3916
 
web2py.gluon.html.LEGEND.tag
3917
 
web2py.gluon.html.LI.tag
3918
 
web2py.gluon.html.LINK.tag
3919
 
web2py.gluon.html.MENU.tag
3920
 
web2py.gluon.html.META.tag
3921
 
web2py.gluon.html.OBJECT.tag
3922
 
web2py.gluon.html.OL.tag
3923
 
web2py.gluon.html.OPTGROUP.tag
3924
 
web2py.gluon.html.OPTION.tag
3925
 
web2py.gluon.html.P.tag
3926
 
web2py.gluon.html.PRE.tag
3927
 
web2py.gluon.html.SCRIPT.tag
3928
 
web2py.gluon.html.SELECT.tag
3929
 
web2py.gluon.html.SPAN.tag
3930
 
web2py.gluon.html.STYLE.tag
3931
 
web2py.gluon.html.TABLE.tag
3932
 
web2py.gluon.html.TBODY.tag
3933
 
web2py.gluon.html.TD.tag
3934
 
web2py.gluon.html.TEXTAREA.tag
3935
 
web2py.gluon.html.TFOOT.tag
3936
 
web2py.gluon.html.TH.tag
3937
 
web2py.gluon.html.THEAD.tag
3938
 
web2py.gluon.html.TITLE.tag
3939
 
web2py.gluon.html.TR.tag
3940
 
web2py.gluon.html.TT.tag
3941
 
web2py.gluon.html.UL.tag
3942
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-279', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
3943
 
</div><a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"> </tt>
3944
 
<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"> </tt>
3945
 
<a name="BR"></a><div id="BR-def"><a name="L1265"></a><tt class="py-lineno">1265</tt> <a class="py-toggle" href="#" id="BR-toggle" onclick="return toggle('BR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BR-class.html">BR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
3946
 
</div><div id="BR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BR-expanded"><a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line"> </tt>
3947
 
<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">    <tt id="link-280" class="py-name"><a title="web2py.gluon.html.A.tag
3948
 
web2py.gluon.html.B.tag
3949
 
web2py.gluon.html.BEAUTIFY.tag
3950
 
web2py.gluon.html.BODY.tag
3951
 
web2py.gluon.html.BR.tag
3952
 
web2py.gluon.html.BUTTON.tag
3953
 
web2py.gluon.html.CAT.tag
3954
 
web2py.gluon.html.CENTER.tag
3955
 
web2py.gluon.html.COL.tag
3956
 
web2py.gluon.html.COLGROUP.tag
3957
 
web2py.gluon.html.DIV.tag
3958
 
web2py.gluon.html.EM.tag
3959
 
web2py.gluon.html.EMBED.tag
3960
 
web2py.gluon.html.FIELDSET.tag
3961
 
web2py.gluon.html.FORM.tag
3962
 
web2py.gluon.html.H1.tag
3963
 
web2py.gluon.html.H2.tag
3964
 
web2py.gluon.html.H3.tag
3965
 
web2py.gluon.html.H4.tag
3966
 
web2py.gluon.html.H5.tag
3967
 
web2py.gluon.html.H6.tag
3968
 
web2py.gluon.html.HEAD.tag
3969
 
web2py.gluon.html.HR.tag
3970
 
web2py.gluon.html.HTML.tag
3971
 
web2py.gluon.html.I.tag
3972
 
web2py.gluon.html.IFRAME.tag
3973
 
web2py.gluon.html.IMG.tag
3974
 
web2py.gluon.html.INPUT.tag
3975
 
web2py.gluon.html.LABEL.tag
3976
 
web2py.gluon.html.LEGEND.tag
3977
 
web2py.gluon.html.LI.tag
3978
 
web2py.gluon.html.LINK.tag
3979
 
web2py.gluon.html.MENU.tag
3980
 
web2py.gluon.html.META.tag
3981
 
web2py.gluon.html.OBJECT.tag
3982
 
web2py.gluon.html.OL.tag
3983
 
web2py.gluon.html.OPTGROUP.tag
3984
 
web2py.gluon.html.OPTION.tag
3985
 
web2py.gluon.html.P.tag
3986
 
web2py.gluon.html.PRE.tag
3987
 
web2py.gluon.html.SCRIPT.tag
3988
 
web2py.gluon.html.SELECT.tag
3989
 
web2py.gluon.html.SPAN.tag
3990
 
web2py.gluon.html.STYLE.tag
3991
 
web2py.gluon.html.TABLE.tag
3992
 
web2py.gluon.html.TBODY.tag
3993
 
web2py.gluon.html.TD.tag
3994
 
web2py.gluon.html.TEXTAREA.tag
3995
 
web2py.gluon.html.TFOOT.tag
3996
 
web2py.gluon.html.TH.tag
3997
 
web2py.gluon.html.THEAD.tag
3998
 
web2py.gluon.html.TITLE.tag
3999
 
web2py.gluon.html.TR.tag
4000
 
web2py.gluon.html.TT.tag
4001
 
web2py.gluon.html.UL.tag
4002
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-280', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'br/'</tt> </tt>
4003
 
</div><a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line"> </tt>
 
3701
<a name="H5"></a><div id="H5-def"><a name="L1251"></a><tt class="py-lineno">1251</tt> <a class="py-toggle" href="#" id="H5-toggle" onclick="return toggle('H5');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H5-class.html">H5</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3702
</div><div id="H5-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H5-expanded"><a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line"> </tt>
 
3703
<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">    <tt id="link-264" class="py-name"><a title="web2py.gluon.html.A.tag
 
3704
web2py.gluon.html.B.tag
 
3705
web2py.gluon.html.BEAUTIFY.tag
 
3706
web2py.gluon.html.BODY.tag
 
3707
web2py.gluon.html.BR.tag
 
3708
web2py.gluon.html.BUTTON.tag
 
3709
web2py.gluon.html.CAT.tag
 
3710
web2py.gluon.html.CENTER.tag
 
3711
web2py.gluon.html.COL.tag
 
3712
web2py.gluon.html.COLGROUP.tag
 
3713
web2py.gluon.html.DIV.tag
 
3714
web2py.gluon.html.EM.tag
 
3715
web2py.gluon.html.EMBED.tag
 
3716
web2py.gluon.html.FIELDSET.tag
 
3717
web2py.gluon.html.FORM.tag
 
3718
web2py.gluon.html.H1.tag
 
3719
web2py.gluon.html.H2.tag
 
3720
web2py.gluon.html.H3.tag
 
3721
web2py.gluon.html.H4.tag
 
3722
web2py.gluon.html.H5.tag
 
3723
web2py.gluon.html.H6.tag
 
3724
web2py.gluon.html.HEAD.tag
 
3725
web2py.gluon.html.HR.tag
 
3726
web2py.gluon.html.HTML.tag
 
3727
web2py.gluon.html.I.tag
 
3728
web2py.gluon.html.IFRAME.tag
 
3729
web2py.gluon.html.IMG.tag
 
3730
web2py.gluon.html.INPUT.tag
 
3731
web2py.gluon.html.LABEL.tag
 
3732
web2py.gluon.html.LEGEND.tag
 
3733
web2py.gluon.html.LI.tag
 
3734
web2py.gluon.html.LINK.tag
 
3735
web2py.gluon.html.MENU.tag
 
3736
web2py.gluon.html.META.tag
 
3737
web2py.gluon.html.OBJECT.tag
 
3738
web2py.gluon.html.OL.tag
 
3739
web2py.gluon.html.OPTGROUP.tag
 
3740
web2py.gluon.html.OPTION.tag
 
3741
web2py.gluon.html.P.tag
 
3742
web2py.gluon.html.PRE.tag
 
3743
web2py.gluon.html.SCRIPT.tag
 
3744
web2py.gluon.html.SELECT.tag
 
3745
web2py.gluon.html.SPAN.tag
 
3746
web2py.gluon.html.STYLE.tag
 
3747
web2py.gluon.html.TABLE.tag
 
3748
web2py.gluon.html.TBODY.tag
 
3749
web2py.gluon.html.TD.tag
 
3750
web2py.gluon.html.TEXTAREA.tag
 
3751
web2py.gluon.html.TFOOT.tag
 
3752
web2py.gluon.html.TH.tag
 
3753
web2py.gluon.html.THEAD.tag
 
3754
web2py.gluon.html.TITLE.tag
 
3755
web2py.gluon.html.TR.tag
 
3756
web2py.gluon.html.TT.tag
 
3757
web2py.gluon.html.UL.tag
 
3758
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-264', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h5'</tt> </tt>
 
3759
</div><a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"> </tt>
 
3760
<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"> </tt>
 
3761
<a name="H6"></a><div id="H6-def"><a name="L1256"></a><tt class="py-lineno">1256</tt> <a class="py-toggle" href="#" id="H6-toggle" onclick="return toggle('H6');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.H6-class.html">H6</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3762
</div><div id="H6-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="H6-expanded"><a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line"> </tt>
 
3763
<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">    <tt id="link-265" class="py-name"><a title="web2py.gluon.html.A.tag
 
3764
web2py.gluon.html.B.tag
 
3765
web2py.gluon.html.BEAUTIFY.tag
 
3766
web2py.gluon.html.BODY.tag
 
3767
web2py.gluon.html.BR.tag
 
3768
web2py.gluon.html.BUTTON.tag
 
3769
web2py.gluon.html.CAT.tag
 
3770
web2py.gluon.html.CENTER.tag
 
3771
web2py.gluon.html.COL.tag
 
3772
web2py.gluon.html.COLGROUP.tag
 
3773
web2py.gluon.html.DIV.tag
 
3774
web2py.gluon.html.EM.tag
 
3775
web2py.gluon.html.EMBED.tag
 
3776
web2py.gluon.html.FIELDSET.tag
 
3777
web2py.gluon.html.FORM.tag
 
3778
web2py.gluon.html.H1.tag
 
3779
web2py.gluon.html.H2.tag
 
3780
web2py.gluon.html.H3.tag
 
3781
web2py.gluon.html.H4.tag
 
3782
web2py.gluon.html.H5.tag
 
3783
web2py.gluon.html.H6.tag
 
3784
web2py.gluon.html.HEAD.tag
 
3785
web2py.gluon.html.HR.tag
 
3786
web2py.gluon.html.HTML.tag
 
3787
web2py.gluon.html.I.tag
 
3788
web2py.gluon.html.IFRAME.tag
 
3789
web2py.gluon.html.IMG.tag
 
3790
web2py.gluon.html.INPUT.tag
 
3791
web2py.gluon.html.LABEL.tag
 
3792
web2py.gluon.html.LEGEND.tag
 
3793
web2py.gluon.html.LI.tag
 
3794
web2py.gluon.html.LINK.tag
 
3795
web2py.gluon.html.MENU.tag
 
3796
web2py.gluon.html.META.tag
 
3797
web2py.gluon.html.OBJECT.tag
 
3798
web2py.gluon.html.OL.tag
 
3799
web2py.gluon.html.OPTGROUP.tag
 
3800
web2py.gluon.html.OPTION.tag
 
3801
web2py.gluon.html.P.tag
 
3802
web2py.gluon.html.PRE.tag
 
3803
web2py.gluon.html.SCRIPT.tag
 
3804
web2py.gluon.html.SELECT.tag
 
3805
web2py.gluon.html.SPAN.tag
 
3806
web2py.gluon.html.STYLE.tag
 
3807
web2py.gluon.html.TABLE.tag
 
3808
web2py.gluon.html.TBODY.tag
 
3809
web2py.gluon.html.TD.tag
 
3810
web2py.gluon.html.TEXTAREA.tag
 
3811
web2py.gluon.html.TFOOT.tag
 
3812
web2py.gluon.html.TH.tag
 
3813
web2py.gluon.html.THEAD.tag
 
3814
web2py.gluon.html.TITLE.tag
 
3815
web2py.gluon.html.TR.tag
 
3816
web2py.gluon.html.TT.tag
 
3817
web2py.gluon.html.UL.tag
 
3818
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-265', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'h6'</tt> </tt>
 
3819
</div><a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"> </tt>
 
3820
<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"> </tt>
 
3821
<a name="P"></a><div id="P-def"><a name="L1261"></a><tt class="py-lineno">1261</tt> <a class="py-toggle" href="#" id="P-toggle" onclick="return toggle('P');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.P-class.html">P</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3822
</div><div id="P-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="P-expanded"><a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
3823
<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"><tt class="py-docstring">    Will replace ``\\n`` by ``&lt;br /&gt;`` if the `cr2br` attribute is provided.</tt> </tt>
 
3824
<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
3825
<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
 
3826
<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
3827
<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"> </tt>
 
3828
<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">    <tt id="link-266" class="py-name"><a title="web2py.gluon.html.A.tag
 
3829
web2py.gluon.html.B.tag
 
3830
web2py.gluon.html.BEAUTIFY.tag
 
3831
web2py.gluon.html.BODY.tag
 
3832
web2py.gluon.html.BR.tag
 
3833
web2py.gluon.html.BUTTON.tag
 
3834
web2py.gluon.html.CAT.tag
 
3835
web2py.gluon.html.CENTER.tag
 
3836
web2py.gluon.html.COL.tag
 
3837
web2py.gluon.html.COLGROUP.tag
 
3838
web2py.gluon.html.DIV.tag
 
3839
web2py.gluon.html.EM.tag
 
3840
web2py.gluon.html.EMBED.tag
 
3841
web2py.gluon.html.FIELDSET.tag
 
3842
web2py.gluon.html.FORM.tag
 
3843
web2py.gluon.html.H1.tag
 
3844
web2py.gluon.html.H2.tag
 
3845
web2py.gluon.html.H3.tag
 
3846
web2py.gluon.html.H4.tag
 
3847
web2py.gluon.html.H5.tag
 
3848
web2py.gluon.html.H6.tag
 
3849
web2py.gluon.html.HEAD.tag
 
3850
web2py.gluon.html.HR.tag
 
3851
web2py.gluon.html.HTML.tag
 
3852
web2py.gluon.html.I.tag
 
3853
web2py.gluon.html.IFRAME.tag
 
3854
web2py.gluon.html.IMG.tag
 
3855
web2py.gluon.html.INPUT.tag
 
3856
web2py.gluon.html.LABEL.tag
 
3857
web2py.gluon.html.LEGEND.tag
 
3858
web2py.gluon.html.LI.tag
 
3859
web2py.gluon.html.LINK.tag
 
3860
web2py.gluon.html.MENU.tag
 
3861
web2py.gluon.html.META.tag
 
3862
web2py.gluon.html.OBJECT.tag
 
3863
web2py.gluon.html.OL.tag
 
3864
web2py.gluon.html.OPTGROUP.tag
 
3865
web2py.gluon.html.OPTION.tag
 
3866
web2py.gluon.html.P.tag
 
3867
web2py.gluon.html.PRE.tag
 
3868
web2py.gluon.html.SCRIPT.tag
 
3869
web2py.gluon.html.SELECT.tag
 
3870
web2py.gluon.html.SPAN.tag
 
3871
web2py.gluon.html.STYLE.tag
 
3872
web2py.gluon.html.TABLE.tag
 
3873
web2py.gluon.html.TBODY.tag
 
3874
web2py.gluon.html.TD.tag
 
3875
web2py.gluon.html.TEXTAREA.tag
 
3876
web2py.gluon.html.TFOOT.tag
 
3877
web2py.gluon.html.TH.tag
 
3878
web2py.gluon.html.THEAD.tag
 
3879
web2py.gluon.html.TITLE.tag
 
3880
web2py.gluon.html.TR.tag
 
3881
web2py.gluon.html.TT.tag
 
3882
web2py.gluon.html.UL.tag
 
3883
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-266', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'p'</tt> </tt>
4004
3884
<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line"> </tt>
4005
 
<a name="HR"></a><div id="HR-def"><a name="L1270"></a><tt class="py-lineno">1270</tt> <a class="py-toggle" href="#" id="HR-toggle" onclick="return toggle('HR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HR-class.html">HR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4006
 
</div><div id="HR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HR-expanded"><a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line"> </tt>
4007
 
<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">    <tt id="link-281" class="py-name"><a title="web2py.gluon.html.A.tag
4008
 
web2py.gluon.html.B.tag
4009
 
web2py.gluon.html.BEAUTIFY.tag
4010
 
web2py.gluon.html.BODY.tag
4011
 
web2py.gluon.html.BR.tag
4012
 
web2py.gluon.html.BUTTON.tag
4013
 
web2py.gluon.html.CAT.tag
4014
 
web2py.gluon.html.CENTER.tag
4015
 
web2py.gluon.html.COL.tag
4016
 
web2py.gluon.html.COLGROUP.tag
4017
 
web2py.gluon.html.DIV.tag
4018
 
web2py.gluon.html.EM.tag
4019
 
web2py.gluon.html.EMBED.tag
4020
 
web2py.gluon.html.FIELDSET.tag
4021
 
web2py.gluon.html.FORM.tag
4022
 
web2py.gluon.html.H1.tag
4023
 
web2py.gluon.html.H2.tag
4024
 
web2py.gluon.html.H3.tag
4025
 
web2py.gluon.html.H4.tag
4026
 
web2py.gluon.html.H5.tag
4027
 
web2py.gluon.html.H6.tag
4028
 
web2py.gluon.html.HEAD.tag
4029
 
web2py.gluon.html.HR.tag
4030
 
web2py.gluon.html.HTML.tag
4031
 
web2py.gluon.html.I.tag
4032
 
web2py.gluon.html.IFRAME.tag
4033
 
web2py.gluon.html.IMG.tag
4034
 
web2py.gluon.html.INPUT.tag
4035
 
web2py.gluon.html.LABEL.tag
4036
 
web2py.gluon.html.LEGEND.tag
4037
 
web2py.gluon.html.LI.tag
4038
 
web2py.gluon.html.LINK.tag
4039
 
web2py.gluon.html.MENU.tag
4040
 
web2py.gluon.html.META.tag
4041
 
web2py.gluon.html.OBJECT.tag
4042
 
web2py.gluon.html.OL.tag
4043
 
web2py.gluon.html.OPTGROUP.tag
4044
 
web2py.gluon.html.OPTION.tag
4045
 
web2py.gluon.html.P.tag
4046
 
web2py.gluon.html.PRE.tag
4047
 
web2py.gluon.html.SCRIPT.tag
4048
 
web2py.gluon.html.SELECT.tag
4049
 
web2py.gluon.html.SPAN.tag
4050
 
web2py.gluon.html.STYLE.tag
4051
 
web2py.gluon.html.TABLE.tag
4052
 
web2py.gluon.html.TBODY.tag
4053
 
web2py.gluon.html.TD.tag
4054
 
web2py.gluon.html.TEXTAREA.tag
4055
 
web2py.gluon.html.TFOOT.tag
4056
 
web2py.gluon.html.TH.tag
4057
 
web2py.gluon.html.THEAD.tag
4058
 
web2py.gluon.html.TITLE.tag
4059
 
web2py.gluon.html.TR.tag
4060
 
web2py.gluon.html.TT.tag
4061
 
web2py.gluon.html.UL.tag
4062
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-281', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hr/'</tt> </tt>
4063
 
</div><a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"> </tt>
4064
 
<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"> </tt>
4065
 
<a name="A"></a><div id="A-def"><a name="L1275"></a><tt class="py-lineno">1275</tt> <a class="py-toggle" href="#" id="A-toggle" onclick="return toggle('A');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.A-class.html">A</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4066
 
</div><div id="A-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="A-expanded"><a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line"> </tt>
4067
 
<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">    <tt id="link-282" class="py-name"><a title="web2py.gluon.html.A.tag
4068
 
web2py.gluon.html.B.tag
4069
 
web2py.gluon.html.BEAUTIFY.tag
4070
 
web2py.gluon.html.BODY.tag
4071
 
web2py.gluon.html.BR.tag
4072
 
web2py.gluon.html.BUTTON.tag
4073
 
web2py.gluon.html.CAT.tag
4074
 
web2py.gluon.html.CENTER.tag
4075
 
web2py.gluon.html.COL.tag
4076
 
web2py.gluon.html.COLGROUP.tag
4077
 
web2py.gluon.html.DIV.tag
4078
 
web2py.gluon.html.EM.tag
4079
 
web2py.gluon.html.EMBED.tag
4080
 
web2py.gluon.html.FIELDSET.tag
4081
 
web2py.gluon.html.FORM.tag
4082
 
web2py.gluon.html.H1.tag
4083
 
web2py.gluon.html.H2.tag
4084
 
web2py.gluon.html.H3.tag
4085
 
web2py.gluon.html.H4.tag
4086
 
web2py.gluon.html.H5.tag
4087
 
web2py.gluon.html.H6.tag
4088
 
web2py.gluon.html.HEAD.tag
4089
 
web2py.gluon.html.HR.tag
4090
 
web2py.gluon.html.HTML.tag
4091
 
web2py.gluon.html.I.tag
4092
 
web2py.gluon.html.IFRAME.tag
4093
 
web2py.gluon.html.IMG.tag
4094
 
web2py.gluon.html.INPUT.tag
4095
 
web2py.gluon.html.LABEL.tag
4096
 
web2py.gluon.html.LEGEND.tag
4097
 
web2py.gluon.html.LI.tag
4098
 
web2py.gluon.html.LINK.tag
4099
 
web2py.gluon.html.MENU.tag
4100
 
web2py.gluon.html.META.tag
4101
 
web2py.gluon.html.OBJECT.tag
4102
 
web2py.gluon.html.OL.tag
4103
 
web2py.gluon.html.OPTGROUP.tag
4104
 
web2py.gluon.html.OPTION.tag
4105
 
web2py.gluon.html.P.tag
4106
 
web2py.gluon.html.PRE.tag
4107
 
web2py.gluon.html.SCRIPT.tag
4108
 
web2py.gluon.html.SELECT.tag
4109
 
web2py.gluon.html.SPAN.tag
4110
 
web2py.gluon.html.STYLE.tag
4111
 
web2py.gluon.html.TABLE.tag
4112
 
web2py.gluon.html.TBODY.tag
4113
 
web2py.gluon.html.TD.tag
4114
 
web2py.gluon.html.TEXTAREA.tag
4115
 
web2py.gluon.html.TFOOT.tag
4116
 
web2py.gluon.html.TH.tag
4117
 
web2py.gluon.html.THEAD.tag
4118
 
web2py.gluon.html.TITLE.tag
4119
 
web2py.gluon.html.TR.tag
4120
 
web2py.gluon.html.TT.tag
4121
 
web2py.gluon.html.UL.tag
4122
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-282', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
4123
 
<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"> </tt>
4124
 
<a name="A.xml"></a><div id="A.xml-def"><a name="L1279"></a><tt class="py-lineno">1279</tt> <a class="py-toggle" href="#" id="A.xml-toggle" onclick="return toggle('A.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.A-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4125
 
</div><div id="A.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="A.xml-expanded"><a name="L1280"></a><tt class="py-lineno">1280</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-string">'callback'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
4126
 
<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"ajax('%s',[],'%s');return false;"</tt> <tt class="py-op">%</tt> \ </tt>
4127
 
<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'callback'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'target'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
4128
 
<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'#null'</tt> </tt>
4129
 
<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'cid'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
4130
 
<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">'web2py_component("%s","%s");return false;'</tt> <tt class="py-op">%</tt> \ </tt>
4131
 
<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'cid'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
4132
 
<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-283" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
4133
 
web2py.gluon.dal.NoSQLAdapter.DIV
4134
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-283', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="web2py.gluon.dal.Rows.xml
4135
 
web2py.gluon.html.A.xml
4136
 
web2py.gluon.html.CODE.xml
4137
 
web2py.gluon.html.DIV.xml
4138
 
web2py.gluon.html.FORM.xml
4139
 
web2py.gluon.html.HTML.xml
4140
 
web2py.gluon.html.INPUT.xml
4141
 
web2py.gluon.html.MARKMIN.xml
4142
 
web2py.gluon.html.MENU.xml
4143
 
web2py.gluon.html.P.xml
4144
 
web2py.gluon.html.SCRIPT.xml
4145
 
web2py.gluon.html.STYLE.xml
4146
 
web2py.gluon.html.XHTML.xml
4147
 
web2py.gluon.html.XML.xml
4148
 
web2py.gluon.html.XmlComponent.xml
4149
 
web2py.gluon.languages.lazyT.xml
4150
 
web2py.gluon.serializers.xml
4151
 
web2py.gluon.tools.Recaptcha.xml
4152
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-284', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
4153
 
</div></div><a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"> </tt>
4154
 
<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"> </tt>
4155
 
<a name="BUTTON"></a><div id="BUTTON-def"><a name="L1290"></a><tt class="py-lineno">1290</tt> <a class="py-toggle" href="#" id="BUTTON-toggle" onclick="return toggle('BUTTON');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BUTTON-class.html">BUTTON</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4156
 
</div><div id="BUTTON-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BUTTON-expanded"><a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">     </tt>
4157
 
<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">    <tt id="link-285" class="py-name"><a title="web2py.gluon.html.A.tag
4158
 
web2py.gluon.html.B.tag
4159
 
web2py.gluon.html.BEAUTIFY.tag
4160
 
web2py.gluon.html.BODY.tag
4161
 
web2py.gluon.html.BR.tag
4162
 
web2py.gluon.html.BUTTON.tag
4163
 
web2py.gluon.html.CAT.tag
4164
 
web2py.gluon.html.CENTER.tag
4165
 
web2py.gluon.html.COL.tag
4166
 
web2py.gluon.html.COLGROUP.tag
4167
 
web2py.gluon.html.DIV.tag
4168
 
web2py.gluon.html.EM.tag
4169
 
web2py.gluon.html.EMBED.tag
4170
 
web2py.gluon.html.FIELDSET.tag
4171
 
web2py.gluon.html.FORM.tag
4172
 
web2py.gluon.html.H1.tag
4173
 
web2py.gluon.html.H2.tag
4174
 
web2py.gluon.html.H3.tag
4175
 
web2py.gluon.html.H4.tag
4176
 
web2py.gluon.html.H5.tag
4177
 
web2py.gluon.html.H6.tag
4178
 
web2py.gluon.html.HEAD.tag
4179
 
web2py.gluon.html.HR.tag
4180
 
web2py.gluon.html.HTML.tag
4181
 
web2py.gluon.html.I.tag
4182
 
web2py.gluon.html.IFRAME.tag
4183
 
web2py.gluon.html.IMG.tag
4184
 
web2py.gluon.html.INPUT.tag
4185
 
web2py.gluon.html.LABEL.tag
4186
 
web2py.gluon.html.LEGEND.tag
4187
 
web2py.gluon.html.LI.tag
4188
 
web2py.gluon.html.LINK.tag
4189
 
web2py.gluon.html.MENU.tag
4190
 
web2py.gluon.html.META.tag
4191
 
web2py.gluon.html.OBJECT.tag
4192
 
web2py.gluon.html.OL.tag
4193
 
web2py.gluon.html.OPTGROUP.tag
4194
 
web2py.gluon.html.OPTION.tag
4195
 
web2py.gluon.html.P.tag
4196
 
web2py.gluon.html.PRE.tag
4197
 
web2py.gluon.html.SCRIPT.tag
4198
 
web2py.gluon.html.SELECT.tag
4199
 
web2py.gluon.html.SPAN.tag
4200
 
web2py.gluon.html.STYLE.tag
4201
 
web2py.gluon.html.TABLE.tag
4202
 
web2py.gluon.html.TBODY.tag
4203
 
web2py.gluon.html.TD.tag
4204
 
web2py.gluon.html.TEXTAREA.tag
4205
 
web2py.gluon.html.TFOOT.tag
4206
 
web2py.gluon.html.TH.tag
4207
 
web2py.gluon.html.THEAD.tag
4208
 
web2py.gluon.html.TITLE.tag
4209
 
web2py.gluon.html.TR.tag
4210
 
web2py.gluon.html.TT.tag
4211
 
web2py.gluon.html.UL.tag
4212
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-285', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'button'</tt> </tt>
4213
 
</div><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"> </tt>
4214
 
<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"> </tt>
4215
 
<a name="EM"></a><div id="EM-def"><a name="L1295"></a><tt class="py-lineno">1295</tt> <a class="py-toggle" href="#" id="EM-toggle" onclick="return toggle('EM');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.EM-class.html">EM</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4216
 
</div><div id="EM-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="EM-expanded"><a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
4217
 
<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">    <tt id="link-286" class="py-name"><a title="web2py.gluon.html.A.tag
4218
 
web2py.gluon.html.B.tag
4219
 
web2py.gluon.html.BEAUTIFY.tag
4220
 
web2py.gluon.html.BODY.tag
4221
 
web2py.gluon.html.BR.tag
4222
 
web2py.gluon.html.BUTTON.tag
4223
 
web2py.gluon.html.CAT.tag
4224
 
web2py.gluon.html.CENTER.tag
4225
 
web2py.gluon.html.COL.tag
4226
 
web2py.gluon.html.COLGROUP.tag
4227
 
web2py.gluon.html.DIV.tag
4228
 
web2py.gluon.html.EM.tag
4229
 
web2py.gluon.html.EMBED.tag
4230
 
web2py.gluon.html.FIELDSET.tag
4231
 
web2py.gluon.html.FORM.tag
4232
 
web2py.gluon.html.H1.tag
4233
 
web2py.gluon.html.H2.tag
4234
 
web2py.gluon.html.H3.tag
4235
 
web2py.gluon.html.H4.tag
4236
 
web2py.gluon.html.H5.tag
4237
 
web2py.gluon.html.H6.tag
4238
 
web2py.gluon.html.HEAD.tag
4239
 
web2py.gluon.html.HR.tag
4240
 
web2py.gluon.html.HTML.tag
4241
 
web2py.gluon.html.I.tag
4242
 
web2py.gluon.html.IFRAME.tag
4243
 
web2py.gluon.html.IMG.tag
4244
 
web2py.gluon.html.INPUT.tag
4245
 
web2py.gluon.html.LABEL.tag
4246
 
web2py.gluon.html.LEGEND.tag
4247
 
web2py.gluon.html.LI.tag
4248
 
web2py.gluon.html.LINK.tag
4249
 
web2py.gluon.html.MENU.tag
4250
 
web2py.gluon.html.META.tag
4251
 
web2py.gluon.html.OBJECT.tag
4252
 
web2py.gluon.html.OL.tag
4253
 
web2py.gluon.html.OPTGROUP.tag
4254
 
web2py.gluon.html.OPTION.tag
4255
 
web2py.gluon.html.P.tag
4256
 
web2py.gluon.html.PRE.tag
4257
 
web2py.gluon.html.SCRIPT.tag
4258
 
web2py.gluon.html.SELECT.tag
4259
 
web2py.gluon.html.SPAN.tag
4260
 
web2py.gluon.html.STYLE.tag
4261
 
web2py.gluon.html.TABLE.tag
4262
 
web2py.gluon.html.TBODY.tag
4263
 
web2py.gluon.html.TD.tag
4264
 
web2py.gluon.html.TEXTAREA.tag
4265
 
web2py.gluon.html.TFOOT.tag
4266
 
web2py.gluon.html.TH.tag
4267
 
web2py.gluon.html.THEAD.tag
4268
 
web2py.gluon.html.TITLE.tag
4269
 
web2py.gluon.html.TR.tag
4270
 
web2py.gluon.html.TT.tag
4271
 
web2py.gluon.html.UL.tag
4272
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-286', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'em'</tt> </tt>
4273
 
</div><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"> </tt>
4274
 
<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"> </tt>
4275
 
<a name="EMBED"></a><div id="EMBED-def"><a name="L1300"></a><tt class="py-lineno">1300</tt> <a class="py-toggle" href="#" id="EMBED-toggle" onclick="return toggle('EMBED');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.EMBED-class.html">EMBED</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4276
 
</div><div id="EMBED-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="EMBED-expanded"><a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line"> </tt>
4277
 
<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">    <tt id="link-287" class="py-name"><a title="web2py.gluon.html.A.tag
4278
 
web2py.gluon.html.B.tag
4279
 
web2py.gluon.html.BEAUTIFY.tag
4280
 
web2py.gluon.html.BODY.tag
4281
 
web2py.gluon.html.BR.tag
4282
 
web2py.gluon.html.BUTTON.tag
4283
 
web2py.gluon.html.CAT.tag
4284
 
web2py.gluon.html.CENTER.tag
4285
 
web2py.gluon.html.COL.tag
4286
 
web2py.gluon.html.COLGROUP.tag
4287
 
web2py.gluon.html.DIV.tag
4288
 
web2py.gluon.html.EM.tag
4289
 
web2py.gluon.html.EMBED.tag
4290
 
web2py.gluon.html.FIELDSET.tag
4291
 
web2py.gluon.html.FORM.tag
4292
 
web2py.gluon.html.H1.tag
4293
 
web2py.gluon.html.H2.tag
4294
 
web2py.gluon.html.H3.tag
4295
 
web2py.gluon.html.H4.tag
4296
 
web2py.gluon.html.H5.tag
4297
 
web2py.gluon.html.H6.tag
4298
 
web2py.gluon.html.HEAD.tag
4299
 
web2py.gluon.html.HR.tag
4300
 
web2py.gluon.html.HTML.tag
4301
 
web2py.gluon.html.I.tag
4302
 
web2py.gluon.html.IFRAME.tag
4303
 
web2py.gluon.html.IMG.tag
4304
 
web2py.gluon.html.INPUT.tag
4305
 
web2py.gluon.html.LABEL.tag
4306
 
web2py.gluon.html.LEGEND.tag
4307
 
web2py.gluon.html.LI.tag
4308
 
web2py.gluon.html.LINK.tag
4309
 
web2py.gluon.html.MENU.tag
4310
 
web2py.gluon.html.META.tag
4311
 
web2py.gluon.html.OBJECT.tag
4312
 
web2py.gluon.html.OL.tag
4313
 
web2py.gluon.html.OPTGROUP.tag
4314
 
web2py.gluon.html.OPTION.tag
4315
 
web2py.gluon.html.P.tag
4316
 
web2py.gluon.html.PRE.tag
4317
 
web2py.gluon.html.SCRIPT.tag
4318
 
web2py.gluon.html.SELECT.tag
4319
 
web2py.gluon.html.SPAN.tag
4320
 
web2py.gluon.html.STYLE.tag
4321
 
web2py.gluon.html.TABLE.tag
4322
 
web2py.gluon.html.TBODY.tag
4323
 
web2py.gluon.html.TD.tag
4324
 
web2py.gluon.html.TEXTAREA.tag
4325
 
web2py.gluon.html.TFOOT.tag
4326
 
web2py.gluon.html.TH.tag
4327
 
web2py.gluon.html.THEAD.tag
4328
 
web2py.gluon.html.TITLE.tag
4329
 
web2py.gluon.html.TR.tag
4330
 
web2py.gluon.html.TT.tag
4331
 
web2py.gluon.html.UL.tag
4332
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-287', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'embed/'</tt> </tt>
4333
 
</div><a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"> </tt>
4334
 
<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
4335
 
<a name="TT"></a><div id="TT-def"><a name="L1305"></a><tt class="py-lineno">1305</tt> <a class="py-toggle" href="#" id="TT-toggle" onclick="return toggle('TT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TT-class.html">TT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4336
 
</div><div id="TT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TT-expanded"><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"> </tt>
4337
 
<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">    <tt id="link-288" class="py-name"><a title="web2py.gluon.html.A.tag
4338
 
web2py.gluon.html.B.tag
4339
 
web2py.gluon.html.BEAUTIFY.tag
4340
 
web2py.gluon.html.BODY.tag
4341
 
web2py.gluon.html.BR.tag
4342
 
web2py.gluon.html.BUTTON.tag
4343
 
web2py.gluon.html.CAT.tag
4344
 
web2py.gluon.html.CENTER.tag
4345
 
web2py.gluon.html.COL.tag
4346
 
web2py.gluon.html.COLGROUP.tag
4347
 
web2py.gluon.html.DIV.tag
4348
 
web2py.gluon.html.EM.tag
4349
 
web2py.gluon.html.EMBED.tag
4350
 
web2py.gluon.html.FIELDSET.tag
4351
 
web2py.gluon.html.FORM.tag
4352
 
web2py.gluon.html.H1.tag
4353
 
web2py.gluon.html.H2.tag
4354
 
web2py.gluon.html.H3.tag
4355
 
web2py.gluon.html.H4.tag
4356
 
web2py.gluon.html.H5.tag
4357
 
web2py.gluon.html.H6.tag
4358
 
web2py.gluon.html.HEAD.tag
4359
 
web2py.gluon.html.HR.tag
4360
 
web2py.gluon.html.HTML.tag
4361
 
web2py.gluon.html.I.tag
4362
 
web2py.gluon.html.IFRAME.tag
4363
 
web2py.gluon.html.IMG.tag
4364
 
web2py.gluon.html.INPUT.tag
4365
 
web2py.gluon.html.LABEL.tag
4366
 
web2py.gluon.html.LEGEND.tag
4367
 
web2py.gluon.html.LI.tag
4368
 
web2py.gluon.html.LINK.tag
4369
 
web2py.gluon.html.MENU.tag
4370
 
web2py.gluon.html.META.tag
4371
 
web2py.gluon.html.OBJECT.tag
4372
 
web2py.gluon.html.OL.tag
4373
 
web2py.gluon.html.OPTGROUP.tag
4374
 
web2py.gluon.html.OPTION.tag
4375
 
web2py.gluon.html.P.tag
4376
 
web2py.gluon.html.PRE.tag
4377
 
web2py.gluon.html.SCRIPT.tag
4378
 
web2py.gluon.html.SELECT.tag
4379
 
web2py.gluon.html.SPAN.tag
4380
 
web2py.gluon.html.STYLE.tag
4381
 
web2py.gluon.html.TABLE.tag
4382
 
web2py.gluon.html.TBODY.tag
4383
 
web2py.gluon.html.TD.tag
4384
 
web2py.gluon.html.TEXTAREA.tag
4385
 
web2py.gluon.html.TFOOT.tag
4386
 
web2py.gluon.html.TH.tag
4387
 
web2py.gluon.html.THEAD.tag
4388
 
web2py.gluon.html.TITLE.tag
4389
 
web2py.gluon.html.TR.tag
4390
 
web2py.gluon.html.TT.tag
4391
 
web2py.gluon.html.UL.tag
4392
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-288', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tt'</tt> </tt>
4393
 
</div><a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"> </tt>
4394
 
<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"> </tt>
4395
 
<a name="PRE"></a><div id="PRE-def"><a name="L1310"></a><tt class="py-lineno">1310</tt> <a class="py-toggle" href="#" id="PRE-toggle" onclick="return toggle('PRE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.PRE-class.html">PRE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4396
 
</div><div id="PRE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="PRE-expanded"><a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"> </tt>
4397
 
<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">    <tt id="link-289" class="py-name"><a title="web2py.gluon.html.A.tag
4398
 
web2py.gluon.html.B.tag
4399
 
web2py.gluon.html.BEAUTIFY.tag
4400
 
web2py.gluon.html.BODY.tag
4401
 
web2py.gluon.html.BR.tag
4402
 
web2py.gluon.html.BUTTON.tag
4403
 
web2py.gluon.html.CAT.tag
4404
 
web2py.gluon.html.CENTER.tag
4405
 
web2py.gluon.html.COL.tag
4406
 
web2py.gluon.html.COLGROUP.tag
4407
 
web2py.gluon.html.DIV.tag
4408
 
web2py.gluon.html.EM.tag
4409
 
web2py.gluon.html.EMBED.tag
4410
 
web2py.gluon.html.FIELDSET.tag
4411
 
web2py.gluon.html.FORM.tag
4412
 
web2py.gluon.html.H1.tag
4413
 
web2py.gluon.html.H2.tag
4414
 
web2py.gluon.html.H3.tag
4415
 
web2py.gluon.html.H4.tag
4416
 
web2py.gluon.html.H5.tag
4417
 
web2py.gluon.html.H6.tag
4418
 
web2py.gluon.html.HEAD.tag
4419
 
web2py.gluon.html.HR.tag
4420
 
web2py.gluon.html.HTML.tag
4421
 
web2py.gluon.html.I.tag
4422
 
web2py.gluon.html.IFRAME.tag
4423
 
web2py.gluon.html.IMG.tag
4424
 
web2py.gluon.html.INPUT.tag
4425
 
web2py.gluon.html.LABEL.tag
4426
 
web2py.gluon.html.LEGEND.tag
4427
 
web2py.gluon.html.LI.tag
4428
 
web2py.gluon.html.LINK.tag
4429
 
web2py.gluon.html.MENU.tag
4430
 
web2py.gluon.html.META.tag
4431
 
web2py.gluon.html.OBJECT.tag
4432
 
web2py.gluon.html.OL.tag
4433
 
web2py.gluon.html.OPTGROUP.tag
4434
 
web2py.gluon.html.OPTION.tag
4435
 
web2py.gluon.html.P.tag
4436
 
web2py.gluon.html.PRE.tag
4437
 
web2py.gluon.html.SCRIPT.tag
4438
 
web2py.gluon.html.SELECT.tag
4439
 
web2py.gluon.html.SPAN.tag
4440
 
web2py.gluon.html.STYLE.tag
4441
 
web2py.gluon.html.TABLE.tag
4442
 
web2py.gluon.html.TBODY.tag
4443
 
web2py.gluon.html.TD.tag
4444
 
web2py.gluon.html.TEXTAREA.tag
4445
 
web2py.gluon.html.TFOOT.tag
4446
 
web2py.gluon.html.TH.tag
4447
 
web2py.gluon.html.THEAD.tag
4448
 
web2py.gluon.html.TITLE.tag
4449
 
web2py.gluon.html.TR.tag
4450
 
web2py.gluon.html.TT.tag
4451
 
web2py.gluon.html.UL.tag
4452
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-289', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'pre'</tt> </tt>
4453
 
</div><a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"> </tt>
4454
 
<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
4455
 
<a name="CENTER"></a><div id="CENTER-def"><a name="L1315"></a><tt class="py-lineno">1315</tt> <a class="py-toggle" href="#" id="CENTER-toggle" onclick="return toggle('CENTER');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CENTER-class.html">CENTER</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4456
 
</div><div id="CENTER-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CENTER-expanded"><a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"> </tt>
4457
 
<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt id="link-290" class="py-name"><a title="web2py.gluon.html.A.tag
4458
 
web2py.gluon.html.B.tag
4459
 
web2py.gluon.html.BEAUTIFY.tag
4460
 
web2py.gluon.html.BODY.tag
4461
 
web2py.gluon.html.BR.tag
4462
 
web2py.gluon.html.BUTTON.tag
4463
 
web2py.gluon.html.CAT.tag
4464
 
web2py.gluon.html.CENTER.tag
4465
 
web2py.gluon.html.COL.tag
4466
 
web2py.gluon.html.COLGROUP.tag
4467
 
web2py.gluon.html.DIV.tag
4468
 
web2py.gluon.html.EM.tag
4469
 
web2py.gluon.html.EMBED.tag
4470
 
web2py.gluon.html.FIELDSET.tag
4471
 
web2py.gluon.html.FORM.tag
4472
 
web2py.gluon.html.H1.tag
4473
 
web2py.gluon.html.H2.tag
4474
 
web2py.gluon.html.H3.tag
4475
 
web2py.gluon.html.H4.tag
4476
 
web2py.gluon.html.H5.tag
4477
 
web2py.gluon.html.H6.tag
4478
 
web2py.gluon.html.HEAD.tag
4479
 
web2py.gluon.html.HR.tag
4480
 
web2py.gluon.html.HTML.tag
4481
 
web2py.gluon.html.I.tag
4482
 
web2py.gluon.html.IFRAME.tag
4483
 
web2py.gluon.html.IMG.tag
4484
 
web2py.gluon.html.INPUT.tag
4485
 
web2py.gluon.html.LABEL.tag
4486
 
web2py.gluon.html.LEGEND.tag
4487
 
web2py.gluon.html.LI.tag
4488
 
web2py.gluon.html.LINK.tag
4489
 
web2py.gluon.html.MENU.tag
4490
 
web2py.gluon.html.META.tag
4491
 
web2py.gluon.html.OBJECT.tag
4492
 
web2py.gluon.html.OL.tag
4493
 
web2py.gluon.html.OPTGROUP.tag
4494
 
web2py.gluon.html.OPTION.tag
4495
 
web2py.gluon.html.P.tag
4496
 
web2py.gluon.html.PRE.tag
4497
 
web2py.gluon.html.SCRIPT.tag
4498
 
web2py.gluon.html.SELECT.tag
4499
 
web2py.gluon.html.SPAN.tag
4500
 
web2py.gluon.html.STYLE.tag
4501
 
web2py.gluon.html.TABLE.tag
4502
 
web2py.gluon.html.TBODY.tag
4503
 
web2py.gluon.html.TD.tag
4504
 
web2py.gluon.html.TEXTAREA.tag
4505
 
web2py.gluon.html.TFOOT.tag
4506
 
web2py.gluon.html.TH.tag
4507
 
web2py.gluon.html.THEAD.tag
4508
 
web2py.gluon.html.TITLE.tag
4509
 
web2py.gluon.html.TR.tag
4510
 
web2py.gluon.html.TT.tag
4511
 
web2py.gluon.html.UL.tag
4512
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-290', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'center'</tt> </tt>
4513
 
</div><a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"> </tt>
4514
 
<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"> </tt>
4515
 
<a name="CODE"></a><div id="CODE-def"><a name="L1320"></a><tt class="py-lineno">1320</tt> <a class="py-toggle" href="#" id="CODE-toggle" onclick="return toggle('CODE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CODE-class.html">CODE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4516
 
</div><div id="CODE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CODE-expanded"><a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"> </tt>
4517
 
<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
4518
 
<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line"><tt class="py-docstring">    displays code in HTML with syntax highlighting.</tt> </tt>
4519
 
<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4520
 
<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"><tt class="py-docstring">    :param attributes: optional attributes:</tt> </tt>
4521
 
<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4522
 
<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"><tt class="py-docstring">        - language: indicates the language, otherwise PYTHON is assumed</tt> </tt>
4523
 
<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"><tt class="py-docstring">        - link: can provide a link</tt> </tt>
4524
 
<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"><tt class="py-docstring">        - styles: for styles</tt> </tt>
4525
 
<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4526
 
<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-docstring">    Example::</tt> </tt>
4527
 
<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4528
 
<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt class="py-docstring">        {{=CODE(\"print 'hello world'\", language='python', link=None,</tt> </tt>
4529
 
<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"><tt class="py-docstring">            counter=1, styles={}, highlight_line=None)}}</tt> </tt>
4530
 
<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4531
 
<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4532
 
<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-docstring">    supported languages are \"python\", \"html_plain\", \"c\", \"cpp\",</tt> </tt>
4533
 
<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-docstring">    \"web2py\", \"html\".</tt> </tt>
4534
 
<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-docstring">    The \"html\" language interprets {{ and }} tags as \"web2py\" code,</tt> </tt>
4535
 
<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-docstring">    \"html_plain\" doesn't.</tt> </tt>
4536
 
<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4537
 
<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-docstring">    if a link='/examples/global/vars/' is provided web2py keywords are linked to</tt> </tt>
4538
 
<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-docstring">    the online docs.</tt> </tt>
4539
 
<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4540
 
<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"><tt class="py-docstring">    the counter is used for line numbering, counter can be None or a prompt</tt> </tt>
4541
 
<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"><tt class="py-docstring">    string.</tt> </tt>
4542
 
<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
4543
 
<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"> </tt>
4544
 
<a name="CODE.xml"></a><div id="CODE.xml-def"><a name="L1349"></a><tt class="py-lineno">1349</tt> <a class="py-toggle" href="#" id="CODE.xml-toggle" onclick="return toggle('CODE.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.CODE-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4545
 
</div><div id="CODE.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CODE.xml-expanded"><a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt class="py-name">language</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'language'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'PYTHON'</tt> </tt>
4546
 
<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'link'</tt><tt class="py-op">]</tt> </tt>
4547
 
<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name" targets="Method web2py.gluon.rocket.Headers.get()=web2py.gluon.rocket.Headers-class.html#get"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-291', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'counter'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
4548
 
<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">        <tt class="py-name">highlight_line</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-292', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'highlight_line'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
4549
 
<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">        <tt class="py-name">styles</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'styles'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
4550
 
<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-293" class="py-name"><a title="web2py.gluon.highlight
 
3885
<a name="P.xml"></a><div id="P.xml-def"><a name="L1270"></a><tt class="py-lineno">1270</tt> <a class="py-toggle" href="#" id="P.xml-toggle" onclick="return toggle('P.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.P-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3886
</div><div id="P.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="P.xml-expanded"><a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt id="link-267" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
3887
web2py.gluon.dal.NoSQLAdapter.DIV
 
3888
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-267', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
3889
web2py.gluon.html.A.xml
 
3890
web2py.gluon.html.CODE.xml
 
3891
web2py.gluon.html.DIV.xml
 
3892
web2py.gluon.html.FORM.xml
 
3893
web2py.gluon.html.HTML.xml
 
3894
web2py.gluon.html.INPUT.xml
 
3895
web2py.gluon.html.MARKMIN.xml
 
3896
web2py.gluon.html.MENU.xml
 
3897
web2py.gluon.html.P.xml
 
3898
web2py.gluon.html.SCRIPT.xml
 
3899
web2py.gluon.html.STYLE.xml
 
3900
web2py.gluon.html.XHTML.xml
 
3901
web2py.gluon.html.XML.xml
 
3902
web2py.gluon.html.XmlComponent.xml
 
3903
web2py.gluon.languages.lazyT.xml
 
3904
web2py.gluon.serializers.xml
 
3905
web2py.gluon.tools.Recaptcha.xml
 
3906
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-268', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
3907
<a name="L1272"></a><tt class="py-lineno">1272</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-string">'cr2br'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
3908
<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;br /&gt;'</tt><tt class="py-op">)</tt> </tt>
 
3909
<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
 
3910
</div></div><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line"> </tt>
 
3911
<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line"> </tt>
 
3912
<a name="B"></a><div id="B-def"><a name="L1277"></a><tt class="py-lineno">1277</tt> <a class="py-toggle" href="#" id="B-toggle" onclick="return toggle('B');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.B-class.html">B</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3913
</div><div id="B-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="B-expanded"><a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"> </tt>
 
3914
<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">    <tt id="link-269" class="py-name"><a title="web2py.gluon.html.A.tag
 
3915
web2py.gluon.html.B.tag
 
3916
web2py.gluon.html.BEAUTIFY.tag
 
3917
web2py.gluon.html.BODY.tag
 
3918
web2py.gluon.html.BR.tag
 
3919
web2py.gluon.html.BUTTON.tag
 
3920
web2py.gluon.html.CAT.tag
 
3921
web2py.gluon.html.CENTER.tag
 
3922
web2py.gluon.html.COL.tag
 
3923
web2py.gluon.html.COLGROUP.tag
 
3924
web2py.gluon.html.DIV.tag
 
3925
web2py.gluon.html.EM.tag
 
3926
web2py.gluon.html.EMBED.tag
 
3927
web2py.gluon.html.FIELDSET.tag
 
3928
web2py.gluon.html.FORM.tag
 
3929
web2py.gluon.html.H1.tag
 
3930
web2py.gluon.html.H2.tag
 
3931
web2py.gluon.html.H3.tag
 
3932
web2py.gluon.html.H4.tag
 
3933
web2py.gluon.html.H5.tag
 
3934
web2py.gluon.html.H6.tag
 
3935
web2py.gluon.html.HEAD.tag
 
3936
web2py.gluon.html.HR.tag
 
3937
web2py.gluon.html.HTML.tag
 
3938
web2py.gluon.html.I.tag
 
3939
web2py.gluon.html.IFRAME.tag
 
3940
web2py.gluon.html.IMG.tag
 
3941
web2py.gluon.html.INPUT.tag
 
3942
web2py.gluon.html.LABEL.tag
 
3943
web2py.gluon.html.LEGEND.tag
 
3944
web2py.gluon.html.LI.tag
 
3945
web2py.gluon.html.LINK.tag
 
3946
web2py.gluon.html.MENU.tag
 
3947
web2py.gluon.html.META.tag
 
3948
web2py.gluon.html.OBJECT.tag
 
3949
web2py.gluon.html.OL.tag
 
3950
web2py.gluon.html.OPTGROUP.tag
 
3951
web2py.gluon.html.OPTION.tag
 
3952
web2py.gluon.html.P.tag
 
3953
web2py.gluon.html.PRE.tag
 
3954
web2py.gluon.html.SCRIPT.tag
 
3955
web2py.gluon.html.SELECT.tag
 
3956
web2py.gluon.html.SPAN.tag
 
3957
web2py.gluon.html.STYLE.tag
 
3958
web2py.gluon.html.TABLE.tag
 
3959
web2py.gluon.html.TBODY.tag
 
3960
web2py.gluon.html.TD.tag
 
3961
web2py.gluon.html.TEXTAREA.tag
 
3962
web2py.gluon.html.TFOOT.tag
 
3963
web2py.gluon.html.TH.tag
 
3964
web2py.gluon.html.THEAD.tag
 
3965
web2py.gluon.html.TITLE.tag
 
3966
web2py.gluon.html.TR.tag
 
3967
web2py.gluon.html.TT.tag
 
3968
web2py.gluon.html.UL.tag
 
3969
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-269', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
 
3970
</div><a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"> </tt>
 
3971
<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"> </tt>
 
3972
<a name="BR"></a><div id="BR-def"><a name="L1282"></a><tt class="py-lineno">1282</tt> <a class="py-toggle" href="#" id="BR-toggle" onclick="return toggle('BR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BR-class.html">BR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
3973
</div><div id="BR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BR-expanded"><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
 
3974
<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">    <tt id="link-270" class="py-name"><a title="web2py.gluon.html.A.tag
 
3975
web2py.gluon.html.B.tag
 
3976
web2py.gluon.html.BEAUTIFY.tag
 
3977
web2py.gluon.html.BODY.tag
 
3978
web2py.gluon.html.BR.tag
 
3979
web2py.gluon.html.BUTTON.tag
 
3980
web2py.gluon.html.CAT.tag
 
3981
web2py.gluon.html.CENTER.tag
 
3982
web2py.gluon.html.COL.tag
 
3983
web2py.gluon.html.COLGROUP.tag
 
3984
web2py.gluon.html.DIV.tag
 
3985
web2py.gluon.html.EM.tag
 
3986
web2py.gluon.html.EMBED.tag
 
3987
web2py.gluon.html.FIELDSET.tag
 
3988
web2py.gluon.html.FORM.tag
 
3989
web2py.gluon.html.H1.tag
 
3990
web2py.gluon.html.H2.tag
 
3991
web2py.gluon.html.H3.tag
 
3992
web2py.gluon.html.H4.tag
 
3993
web2py.gluon.html.H5.tag
 
3994
web2py.gluon.html.H6.tag
 
3995
web2py.gluon.html.HEAD.tag
 
3996
web2py.gluon.html.HR.tag
 
3997
web2py.gluon.html.HTML.tag
 
3998
web2py.gluon.html.I.tag
 
3999
web2py.gluon.html.IFRAME.tag
 
4000
web2py.gluon.html.IMG.tag
 
4001
web2py.gluon.html.INPUT.tag
 
4002
web2py.gluon.html.LABEL.tag
 
4003
web2py.gluon.html.LEGEND.tag
 
4004
web2py.gluon.html.LI.tag
 
4005
web2py.gluon.html.LINK.tag
 
4006
web2py.gluon.html.MENU.tag
 
4007
web2py.gluon.html.META.tag
 
4008
web2py.gluon.html.OBJECT.tag
 
4009
web2py.gluon.html.OL.tag
 
4010
web2py.gluon.html.OPTGROUP.tag
 
4011
web2py.gluon.html.OPTION.tag
 
4012
web2py.gluon.html.P.tag
 
4013
web2py.gluon.html.PRE.tag
 
4014
web2py.gluon.html.SCRIPT.tag
 
4015
web2py.gluon.html.SELECT.tag
 
4016
web2py.gluon.html.SPAN.tag
 
4017
web2py.gluon.html.STYLE.tag
 
4018
web2py.gluon.html.TABLE.tag
 
4019
web2py.gluon.html.TBODY.tag
 
4020
web2py.gluon.html.TD.tag
 
4021
web2py.gluon.html.TEXTAREA.tag
 
4022
web2py.gluon.html.TFOOT.tag
 
4023
web2py.gluon.html.TH.tag
 
4024
web2py.gluon.html.THEAD.tag
 
4025
web2py.gluon.html.TITLE.tag
 
4026
web2py.gluon.html.TR.tag
 
4027
web2py.gluon.html.TT.tag
 
4028
web2py.gluon.html.UL.tag
 
4029
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-270', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'br/'</tt> </tt>
 
4030
</div><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"> </tt>
 
4031
<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
 
4032
<a name="HR"></a><div id="HR-def"><a name="L1287"></a><tt class="py-lineno">1287</tt> <a class="py-toggle" href="#" id="HR-toggle" onclick="return toggle('HR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.HR-class.html">HR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4033
</div><div id="HR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HR-expanded"><a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"> </tt>
 
4034
<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">    <tt id="link-271" class="py-name"><a title="web2py.gluon.html.A.tag
 
4035
web2py.gluon.html.B.tag
 
4036
web2py.gluon.html.BEAUTIFY.tag
 
4037
web2py.gluon.html.BODY.tag
 
4038
web2py.gluon.html.BR.tag
 
4039
web2py.gluon.html.BUTTON.tag
 
4040
web2py.gluon.html.CAT.tag
 
4041
web2py.gluon.html.CENTER.tag
 
4042
web2py.gluon.html.COL.tag
 
4043
web2py.gluon.html.COLGROUP.tag
 
4044
web2py.gluon.html.DIV.tag
 
4045
web2py.gluon.html.EM.tag
 
4046
web2py.gluon.html.EMBED.tag
 
4047
web2py.gluon.html.FIELDSET.tag
 
4048
web2py.gluon.html.FORM.tag
 
4049
web2py.gluon.html.H1.tag
 
4050
web2py.gluon.html.H2.tag
 
4051
web2py.gluon.html.H3.tag
 
4052
web2py.gluon.html.H4.tag
 
4053
web2py.gluon.html.H5.tag
 
4054
web2py.gluon.html.H6.tag
 
4055
web2py.gluon.html.HEAD.tag
 
4056
web2py.gluon.html.HR.tag
 
4057
web2py.gluon.html.HTML.tag
 
4058
web2py.gluon.html.I.tag
 
4059
web2py.gluon.html.IFRAME.tag
 
4060
web2py.gluon.html.IMG.tag
 
4061
web2py.gluon.html.INPUT.tag
 
4062
web2py.gluon.html.LABEL.tag
 
4063
web2py.gluon.html.LEGEND.tag
 
4064
web2py.gluon.html.LI.tag
 
4065
web2py.gluon.html.LINK.tag
 
4066
web2py.gluon.html.MENU.tag
 
4067
web2py.gluon.html.META.tag
 
4068
web2py.gluon.html.OBJECT.tag
 
4069
web2py.gluon.html.OL.tag
 
4070
web2py.gluon.html.OPTGROUP.tag
 
4071
web2py.gluon.html.OPTION.tag
 
4072
web2py.gluon.html.P.tag
 
4073
web2py.gluon.html.PRE.tag
 
4074
web2py.gluon.html.SCRIPT.tag
 
4075
web2py.gluon.html.SELECT.tag
 
4076
web2py.gluon.html.SPAN.tag
 
4077
web2py.gluon.html.STYLE.tag
 
4078
web2py.gluon.html.TABLE.tag
 
4079
web2py.gluon.html.TBODY.tag
 
4080
web2py.gluon.html.TD.tag
 
4081
web2py.gluon.html.TEXTAREA.tag
 
4082
web2py.gluon.html.TFOOT.tag
 
4083
web2py.gluon.html.TH.tag
 
4084
web2py.gluon.html.THEAD.tag
 
4085
web2py.gluon.html.TITLE.tag
 
4086
web2py.gluon.html.TR.tag
 
4087
web2py.gluon.html.TT.tag
 
4088
web2py.gluon.html.UL.tag
 
4089
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-271', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hr/'</tt> </tt>
 
4090
</div><a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"> </tt>
 
4091
<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
 
4092
<a name="A"></a><div id="A-def"><a name="L1292"></a><tt class="py-lineno">1292</tt> <a class="py-toggle" href="#" id="A-toggle" onclick="return toggle('A');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.A-class.html">A</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4093
</div><div id="A-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="A-expanded"><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"> </tt>
 
4094
<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">    <tt id="link-272" class="py-name"><a title="web2py.gluon.html.A.tag
 
4095
web2py.gluon.html.B.tag
 
4096
web2py.gluon.html.BEAUTIFY.tag
 
4097
web2py.gluon.html.BODY.tag
 
4098
web2py.gluon.html.BR.tag
 
4099
web2py.gluon.html.BUTTON.tag
 
4100
web2py.gluon.html.CAT.tag
 
4101
web2py.gluon.html.CENTER.tag
 
4102
web2py.gluon.html.COL.tag
 
4103
web2py.gluon.html.COLGROUP.tag
 
4104
web2py.gluon.html.DIV.tag
 
4105
web2py.gluon.html.EM.tag
 
4106
web2py.gluon.html.EMBED.tag
 
4107
web2py.gluon.html.FIELDSET.tag
 
4108
web2py.gluon.html.FORM.tag
 
4109
web2py.gluon.html.H1.tag
 
4110
web2py.gluon.html.H2.tag
 
4111
web2py.gluon.html.H3.tag
 
4112
web2py.gluon.html.H4.tag
 
4113
web2py.gluon.html.H5.tag
 
4114
web2py.gluon.html.H6.tag
 
4115
web2py.gluon.html.HEAD.tag
 
4116
web2py.gluon.html.HR.tag
 
4117
web2py.gluon.html.HTML.tag
 
4118
web2py.gluon.html.I.tag
 
4119
web2py.gluon.html.IFRAME.tag
 
4120
web2py.gluon.html.IMG.tag
 
4121
web2py.gluon.html.INPUT.tag
 
4122
web2py.gluon.html.LABEL.tag
 
4123
web2py.gluon.html.LEGEND.tag
 
4124
web2py.gluon.html.LI.tag
 
4125
web2py.gluon.html.LINK.tag
 
4126
web2py.gluon.html.MENU.tag
 
4127
web2py.gluon.html.META.tag
 
4128
web2py.gluon.html.OBJECT.tag
 
4129
web2py.gluon.html.OL.tag
 
4130
web2py.gluon.html.OPTGROUP.tag
 
4131
web2py.gluon.html.OPTION.tag
 
4132
web2py.gluon.html.P.tag
 
4133
web2py.gluon.html.PRE.tag
 
4134
web2py.gluon.html.SCRIPT.tag
 
4135
web2py.gluon.html.SELECT.tag
 
4136
web2py.gluon.html.SPAN.tag
 
4137
web2py.gluon.html.STYLE.tag
 
4138
web2py.gluon.html.TABLE.tag
 
4139
web2py.gluon.html.TBODY.tag
 
4140
web2py.gluon.html.TD.tag
 
4141
web2py.gluon.html.TEXTAREA.tag
 
4142
web2py.gluon.html.TFOOT.tag
 
4143
web2py.gluon.html.TH.tag
 
4144
web2py.gluon.html.THEAD.tag
 
4145
web2py.gluon.html.TITLE.tag
 
4146
web2py.gluon.html.TR.tag
 
4147
web2py.gluon.html.TT.tag
 
4148
web2py.gluon.html.UL.tag
 
4149
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-272', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
 
4150
<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"> </tt>
 
4151
<a name="A.xml"></a><div id="A.xml-def"><a name="L1296"></a><tt class="py-lineno">1296</tt> <a class="py-toggle" href="#" id="A.xml-toggle" onclick="return toggle('A.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.A-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4152
</div><div id="A.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="A.xml-expanded"><a name="L1297"></a><tt class="py-lineno">1297</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-string">'delete'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
4153
<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">            <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-string">"jQuery(this).closest('%s').remove();"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'delete'</tt><tt class="py-op">]</tt> </tt>
 
4154
<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
4155
<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">            <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
4156
<a name="L1301"></a><tt class="py-lineno">1301</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-string">'component'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
4157
<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"web2py_component('%s','%s');%sreturn false;"</tt> <tt class="py-op">%</tt> \ </tt>
 
4158
<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'component'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'target'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
 
4159
<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'#null'</tt> </tt>
 
4160
<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'callback'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
4161
<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
 
4162
<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"if(confirm(w2p_ajax_confirm_message||'Are you sure you want o delete this object?')){ajax('%s',[],'%s');%s};return false;"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'callback'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'target'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
 
4163
<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
4164
<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"ajax('%s',[],'%s');%sreturn false;"</tt> <tt class="py-op">%</tt> \ </tt>
 
4165
<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'callback'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'target'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
 
4166
<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'#null'</tt> </tt>
 
4167
<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'cid'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
4168
<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_onclick'</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">'web2py_component("%s","%s");return false;'</tt> <tt class="py-op">%</tt> \ </tt>
 
4169
<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_href'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'cid'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
4170
<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-273" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
4171
web2py.gluon.dal.NoSQLAdapter.DIV
 
4172
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-273', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
4173
web2py.gluon.html.A.xml
 
4174
web2py.gluon.html.CODE.xml
 
4175
web2py.gluon.html.DIV.xml
 
4176
web2py.gluon.html.FORM.xml
 
4177
web2py.gluon.html.HTML.xml
 
4178
web2py.gluon.html.INPUT.xml
 
4179
web2py.gluon.html.MARKMIN.xml
 
4180
web2py.gluon.html.MENU.xml
 
4181
web2py.gluon.html.P.xml
 
4182
web2py.gluon.html.SCRIPT.xml
 
4183
web2py.gluon.html.STYLE.xml
 
4184
web2py.gluon.html.XHTML.xml
 
4185
web2py.gluon.html.XML.xml
 
4186
web2py.gluon.html.XmlComponent.xml
 
4187
web2py.gluon.languages.lazyT.xml
 
4188
web2py.gluon.serializers.xml
 
4189
web2py.gluon.tools.Recaptcha.xml
 
4190
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-274', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
4191
</div></div><a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"> </tt>
 
4192
<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"> </tt>
 
4193
<a name="BUTTON"></a><div id="BUTTON-def"><a name="L1318"></a><tt class="py-lineno">1318</tt> <a class="py-toggle" href="#" id="BUTTON-toggle" onclick="return toggle('BUTTON');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BUTTON-class.html">BUTTON</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4194
</div><div id="BUTTON-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BUTTON-expanded"><a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"> </tt>
 
4195
<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">    <tt id="link-275" class="py-name"><a title="web2py.gluon.html.A.tag
 
4196
web2py.gluon.html.B.tag
 
4197
web2py.gluon.html.BEAUTIFY.tag
 
4198
web2py.gluon.html.BODY.tag
 
4199
web2py.gluon.html.BR.tag
 
4200
web2py.gluon.html.BUTTON.tag
 
4201
web2py.gluon.html.CAT.tag
 
4202
web2py.gluon.html.CENTER.tag
 
4203
web2py.gluon.html.COL.tag
 
4204
web2py.gluon.html.COLGROUP.tag
 
4205
web2py.gluon.html.DIV.tag
 
4206
web2py.gluon.html.EM.tag
 
4207
web2py.gluon.html.EMBED.tag
 
4208
web2py.gluon.html.FIELDSET.tag
 
4209
web2py.gluon.html.FORM.tag
 
4210
web2py.gluon.html.H1.tag
 
4211
web2py.gluon.html.H2.tag
 
4212
web2py.gluon.html.H3.tag
 
4213
web2py.gluon.html.H4.tag
 
4214
web2py.gluon.html.H5.tag
 
4215
web2py.gluon.html.H6.tag
 
4216
web2py.gluon.html.HEAD.tag
 
4217
web2py.gluon.html.HR.tag
 
4218
web2py.gluon.html.HTML.tag
 
4219
web2py.gluon.html.I.tag
 
4220
web2py.gluon.html.IFRAME.tag
 
4221
web2py.gluon.html.IMG.tag
 
4222
web2py.gluon.html.INPUT.tag
 
4223
web2py.gluon.html.LABEL.tag
 
4224
web2py.gluon.html.LEGEND.tag
 
4225
web2py.gluon.html.LI.tag
 
4226
web2py.gluon.html.LINK.tag
 
4227
web2py.gluon.html.MENU.tag
 
4228
web2py.gluon.html.META.tag
 
4229
web2py.gluon.html.OBJECT.tag
 
4230
web2py.gluon.html.OL.tag
 
4231
web2py.gluon.html.OPTGROUP.tag
 
4232
web2py.gluon.html.OPTION.tag
 
4233
web2py.gluon.html.P.tag
 
4234
web2py.gluon.html.PRE.tag
 
4235
web2py.gluon.html.SCRIPT.tag
 
4236
web2py.gluon.html.SELECT.tag
 
4237
web2py.gluon.html.SPAN.tag
 
4238
web2py.gluon.html.STYLE.tag
 
4239
web2py.gluon.html.TABLE.tag
 
4240
web2py.gluon.html.TBODY.tag
 
4241
web2py.gluon.html.TD.tag
 
4242
web2py.gluon.html.TEXTAREA.tag
 
4243
web2py.gluon.html.TFOOT.tag
 
4244
web2py.gluon.html.TH.tag
 
4245
web2py.gluon.html.THEAD.tag
 
4246
web2py.gluon.html.TITLE.tag
 
4247
web2py.gluon.html.TR.tag
 
4248
web2py.gluon.html.TT.tag
 
4249
web2py.gluon.html.UL.tag
 
4250
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-275', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'button'</tt> </tt>
 
4251
</div><a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"> </tt>
 
4252
<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"> </tt>
 
4253
<a name="EM"></a><div id="EM-def"><a name="L1323"></a><tt class="py-lineno">1323</tt> <a class="py-toggle" href="#" id="EM-toggle" onclick="return toggle('EM');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.EM-class.html">EM</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4254
</div><div id="EM-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="EM-expanded"><a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
 
4255
<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">    <tt id="link-276" class="py-name"><a title="web2py.gluon.html.A.tag
 
4256
web2py.gluon.html.B.tag
 
4257
web2py.gluon.html.BEAUTIFY.tag
 
4258
web2py.gluon.html.BODY.tag
 
4259
web2py.gluon.html.BR.tag
 
4260
web2py.gluon.html.BUTTON.tag
 
4261
web2py.gluon.html.CAT.tag
 
4262
web2py.gluon.html.CENTER.tag
 
4263
web2py.gluon.html.COL.tag
 
4264
web2py.gluon.html.COLGROUP.tag
 
4265
web2py.gluon.html.DIV.tag
 
4266
web2py.gluon.html.EM.tag
 
4267
web2py.gluon.html.EMBED.tag
 
4268
web2py.gluon.html.FIELDSET.tag
 
4269
web2py.gluon.html.FORM.tag
 
4270
web2py.gluon.html.H1.tag
 
4271
web2py.gluon.html.H2.tag
 
4272
web2py.gluon.html.H3.tag
 
4273
web2py.gluon.html.H4.tag
 
4274
web2py.gluon.html.H5.tag
 
4275
web2py.gluon.html.H6.tag
 
4276
web2py.gluon.html.HEAD.tag
 
4277
web2py.gluon.html.HR.tag
 
4278
web2py.gluon.html.HTML.tag
 
4279
web2py.gluon.html.I.tag
 
4280
web2py.gluon.html.IFRAME.tag
 
4281
web2py.gluon.html.IMG.tag
 
4282
web2py.gluon.html.INPUT.tag
 
4283
web2py.gluon.html.LABEL.tag
 
4284
web2py.gluon.html.LEGEND.tag
 
4285
web2py.gluon.html.LI.tag
 
4286
web2py.gluon.html.LINK.tag
 
4287
web2py.gluon.html.MENU.tag
 
4288
web2py.gluon.html.META.tag
 
4289
web2py.gluon.html.OBJECT.tag
 
4290
web2py.gluon.html.OL.tag
 
4291
web2py.gluon.html.OPTGROUP.tag
 
4292
web2py.gluon.html.OPTION.tag
 
4293
web2py.gluon.html.P.tag
 
4294
web2py.gluon.html.PRE.tag
 
4295
web2py.gluon.html.SCRIPT.tag
 
4296
web2py.gluon.html.SELECT.tag
 
4297
web2py.gluon.html.SPAN.tag
 
4298
web2py.gluon.html.STYLE.tag
 
4299
web2py.gluon.html.TABLE.tag
 
4300
web2py.gluon.html.TBODY.tag
 
4301
web2py.gluon.html.TD.tag
 
4302
web2py.gluon.html.TEXTAREA.tag
 
4303
web2py.gluon.html.TFOOT.tag
 
4304
web2py.gluon.html.TH.tag
 
4305
web2py.gluon.html.THEAD.tag
 
4306
web2py.gluon.html.TITLE.tag
 
4307
web2py.gluon.html.TR.tag
 
4308
web2py.gluon.html.TT.tag
 
4309
web2py.gluon.html.UL.tag
 
4310
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-276', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'em'</tt> </tt>
 
4311
</div><a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"> </tt>
 
4312
<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"> </tt>
 
4313
<a name="EMBED"></a><div id="EMBED-def"><a name="L1328"></a><tt class="py-lineno">1328</tt> <a class="py-toggle" href="#" id="EMBED-toggle" onclick="return toggle('EMBED');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.EMBED-class.html">EMBED</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4314
</div><div id="EMBED-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="EMBED-expanded"><a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"> </tt>
 
4315
<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">    <tt id="link-277" class="py-name"><a title="web2py.gluon.html.A.tag
 
4316
web2py.gluon.html.B.tag
 
4317
web2py.gluon.html.BEAUTIFY.tag
 
4318
web2py.gluon.html.BODY.tag
 
4319
web2py.gluon.html.BR.tag
 
4320
web2py.gluon.html.BUTTON.tag
 
4321
web2py.gluon.html.CAT.tag
 
4322
web2py.gluon.html.CENTER.tag
 
4323
web2py.gluon.html.COL.tag
 
4324
web2py.gluon.html.COLGROUP.tag
 
4325
web2py.gluon.html.DIV.tag
 
4326
web2py.gluon.html.EM.tag
 
4327
web2py.gluon.html.EMBED.tag
 
4328
web2py.gluon.html.FIELDSET.tag
 
4329
web2py.gluon.html.FORM.tag
 
4330
web2py.gluon.html.H1.tag
 
4331
web2py.gluon.html.H2.tag
 
4332
web2py.gluon.html.H3.tag
 
4333
web2py.gluon.html.H4.tag
 
4334
web2py.gluon.html.H5.tag
 
4335
web2py.gluon.html.H6.tag
 
4336
web2py.gluon.html.HEAD.tag
 
4337
web2py.gluon.html.HR.tag
 
4338
web2py.gluon.html.HTML.tag
 
4339
web2py.gluon.html.I.tag
 
4340
web2py.gluon.html.IFRAME.tag
 
4341
web2py.gluon.html.IMG.tag
 
4342
web2py.gluon.html.INPUT.tag
 
4343
web2py.gluon.html.LABEL.tag
 
4344
web2py.gluon.html.LEGEND.tag
 
4345
web2py.gluon.html.LI.tag
 
4346
web2py.gluon.html.LINK.tag
 
4347
web2py.gluon.html.MENU.tag
 
4348
web2py.gluon.html.META.tag
 
4349
web2py.gluon.html.OBJECT.tag
 
4350
web2py.gluon.html.OL.tag
 
4351
web2py.gluon.html.OPTGROUP.tag
 
4352
web2py.gluon.html.OPTION.tag
 
4353
web2py.gluon.html.P.tag
 
4354
web2py.gluon.html.PRE.tag
 
4355
web2py.gluon.html.SCRIPT.tag
 
4356
web2py.gluon.html.SELECT.tag
 
4357
web2py.gluon.html.SPAN.tag
 
4358
web2py.gluon.html.STYLE.tag
 
4359
web2py.gluon.html.TABLE.tag
 
4360
web2py.gluon.html.TBODY.tag
 
4361
web2py.gluon.html.TD.tag
 
4362
web2py.gluon.html.TEXTAREA.tag
 
4363
web2py.gluon.html.TFOOT.tag
 
4364
web2py.gluon.html.TH.tag
 
4365
web2py.gluon.html.THEAD.tag
 
4366
web2py.gluon.html.TITLE.tag
 
4367
web2py.gluon.html.TR.tag
 
4368
web2py.gluon.html.TT.tag
 
4369
web2py.gluon.html.UL.tag
 
4370
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-277', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'embed/'</tt> </tt>
 
4371
</div><a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"> </tt>
 
4372
<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
 
4373
<a name="TT"></a><div id="TT-def"><a name="L1333"></a><tt class="py-lineno">1333</tt> <a class="py-toggle" href="#" id="TT-toggle" onclick="return toggle('TT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TT-class.html">TT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4374
</div><div id="TT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TT-expanded"><a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"> </tt>
 
4375
<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">    <tt id="link-278" class="py-name"><a title="web2py.gluon.html.A.tag
 
4376
web2py.gluon.html.B.tag
 
4377
web2py.gluon.html.BEAUTIFY.tag
 
4378
web2py.gluon.html.BODY.tag
 
4379
web2py.gluon.html.BR.tag
 
4380
web2py.gluon.html.BUTTON.tag
 
4381
web2py.gluon.html.CAT.tag
 
4382
web2py.gluon.html.CENTER.tag
 
4383
web2py.gluon.html.COL.tag
 
4384
web2py.gluon.html.COLGROUP.tag
 
4385
web2py.gluon.html.DIV.tag
 
4386
web2py.gluon.html.EM.tag
 
4387
web2py.gluon.html.EMBED.tag
 
4388
web2py.gluon.html.FIELDSET.tag
 
4389
web2py.gluon.html.FORM.tag
 
4390
web2py.gluon.html.H1.tag
 
4391
web2py.gluon.html.H2.tag
 
4392
web2py.gluon.html.H3.tag
 
4393
web2py.gluon.html.H4.tag
 
4394
web2py.gluon.html.H5.tag
 
4395
web2py.gluon.html.H6.tag
 
4396
web2py.gluon.html.HEAD.tag
 
4397
web2py.gluon.html.HR.tag
 
4398
web2py.gluon.html.HTML.tag
 
4399
web2py.gluon.html.I.tag
 
4400
web2py.gluon.html.IFRAME.tag
 
4401
web2py.gluon.html.IMG.tag
 
4402
web2py.gluon.html.INPUT.tag
 
4403
web2py.gluon.html.LABEL.tag
 
4404
web2py.gluon.html.LEGEND.tag
 
4405
web2py.gluon.html.LI.tag
 
4406
web2py.gluon.html.LINK.tag
 
4407
web2py.gluon.html.MENU.tag
 
4408
web2py.gluon.html.META.tag
 
4409
web2py.gluon.html.OBJECT.tag
 
4410
web2py.gluon.html.OL.tag
 
4411
web2py.gluon.html.OPTGROUP.tag
 
4412
web2py.gluon.html.OPTION.tag
 
4413
web2py.gluon.html.P.tag
 
4414
web2py.gluon.html.PRE.tag
 
4415
web2py.gluon.html.SCRIPT.tag
 
4416
web2py.gluon.html.SELECT.tag
 
4417
web2py.gluon.html.SPAN.tag
 
4418
web2py.gluon.html.STYLE.tag
 
4419
web2py.gluon.html.TABLE.tag
 
4420
web2py.gluon.html.TBODY.tag
 
4421
web2py.gluon.html.TD.tag
 
4422
web2py.gluon.html.TEXTAREA.tag
 
4423
web2py.gluon.html.TFOOT.tag
 
4424
web2py.gluon.html.TH.tag
 
4425
web2py.gluon.html.THEAD.tag
 
4426
web2py.gluon.html.TITLE.tag
 
4427
web2py.gluon.html.TR.tag
 
4428
web2py.gluon.html.TT.tag
 
4429
web2py.gluon.html.UL.tag
 
4430
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-278', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tt'</tt> </tt>
 
4431
</div><a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"> </tt>
 
4432
<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"> </tt>
 
4433
<a name="PRE"></a><div id="PRE-def"><a name="L1338"></a><tt class="py-lineno">1338</tt> <a class="py-toggle" href="#" id="PRE-toggle" onclick="return toggle('PRE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.PRE-class.html">PRE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4434
</div><div id="PRE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="PRE-expanded"><a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"> </tt>
 
4435
<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">    <tt id="link-279" class="py-name"><a title="web2py.gluon.html.A.tag
 
4436
web2py.gluon.html.B.tag
 
4437
web2py.gluon.html.BEAUTIFY.tag
 
4438
web2py.gluon.html.BODY.tag
 
4439
web2py.gluon.html.BR.tag
 
4440
web2py.gluon.html.BUTTON.tag
 
4441
web2py.gluon.html.CAT.tag
 
4442
web2py.gluon.html.CENTER.tag
 
4443
web2py.gluon.html.COL.tag
 
4444
web2py.gluon.html.COLGROUP.tag
 
4445
web2py.gluon.html.DIV.tag
 
4446
web2py.gluon.html.EM.tag
 
4447
web2py.gluon.html.EMBED.tag
 
4448
web2py.gluon.html.FIELDSET.tag
 
4449
web2py.gluon.html.FORM.tag
 
4450
web2py.gluon.html.H1.tag
 
4451
web2py.gluon.html.H2.tag
 
4452
web2py.gluon.html.H3.tag
 
4453
web2py.gluon.html.H4.tag
 
4454
web2py.gluon.html.H5.tag
 
4455
web2py.gluon.html.H6.tag
 
4456
web2py.gluon.html.HEAD.tag
 
4457
web2py.gluon.html.HR.tag
 
4458
web2py.gluon.html.HTML.tag
 
4459
web2py.gluon.html.I.tag
 
4460
web2py.gluon.html.IFRAME.tag
 
4461
web2py.gluon.html.IMG.tag
 
4462
web2py.gluon.html.INPUT.tag
 
4463
web2py.gluon.html.LABEL.tag
 
4464
web2py.gluon.html.LEGEND.tag
 
4465
web2py.gluon.html.LI.tag
 
4466
web2py.gluon.html.LINK.tag
 
4467
web2py.gluon.html.MENU.tag
 
4468
web2py.gluon.html.META.tag
 
4469
web2py.gluon.html.OBJECT.tag
 
4470
web2py.gluon.html.OL.tag
 
4471
web2py.gluon.html.OPTGROUP.tag
 
4472
web2py.gluon.html.OPTION.tag
 
4473
web2py.gluon.html.P.tag
 
4474
web2py.gluon.html.PRE.tag
 
4475
web2py.gluon.html.SCRIPT.tag
 
4476
web2py.gluon.html.SELECT.tag
 
4477
web2py.gluon.html.SPAN.tag
 
4478
web2py.gluon.html.STYLE.tag
 
4479
web2py.gluon.html.TABLE.tag
 
4480
web2py.gluon.html.TBODY.tag
 
4481
web2py.gluon.html.TD.tag
 
4482
web2py.gluon.html.TEXTAREA.tag
 
4483
web2py.gluon.html.TFOOT.tag
 
4484
web2py.gluon.html.TH.tag
 
4485
web2py.gluon.html.THEAD.tag
 
4486
web2py.gluon.html.TITLE.tag
 
4487
web2py.gluon.html.TR.tag
 
4488
web2py.gluon.html.TT.tag
 
4489
web2py.gluon.html.UL.tag
 
4490
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-279', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'pre'</tt> </tt>
 
4491
</div><a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"> </tt>
 
4492
<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"> </tt>
 
4493
<a name="CENTER"></a><div id="CENTER-def"><a name="L1343"></a><tt class="py-lineno">1343</tt> <a class="py-toggle" href="#" id="CENTER-toggle" onclick="return toggle('CENTER');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CENTER-class.html">CENTER</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4494
</div><div id="CENTER-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CENTER-expanded"><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
 
4495
<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line">    <tt id="link-280" class="py-name"><a title="web2py.gluon.html.A.tag
 
4496
web2py.gluon.html.B.tag
 
4497
web2py.gluon.html.BEAUTIFY.tag
 
4498
web2py.gluon.html.BODY.tag
 
4499
web2py.gluon.html.BR.tag
 
4500
web2py.gluon.html.BUTTON.tag
 
4501
web2py.gluon.html.CAT.tag
 
4502
web2py.gluon.html.CENTER.tag
 
4503
web2py.gluon.html.COL.tag
 
4504
web2py.gluon.html.COLGROUP.tag
 
4505
web2py.gluon.html.DIV.tag
 
4506
web2py.gluon.html.EM.tag
 
4507
web2py.gluon.html.EMBED.tag
 
4508
web2py.gluon.html.FIELDSET.tag
 
4509
web2py.gluon.html.FORM.tag
 
4510
web2py.gluon.html.H1.tag
 
4511
web2py.gluon.html.H2.tag
 
4512
web2py.gluon.html.H3.tag
 
4513
web2py.gluon.html.H4.tag
 
4514
web2py.gluon.html.H5.tag
 
4515
web2py.gluon.html.H6.tag
 
4516
web2py.gluon.html.HEAD.tag
 
4517
web2py.gluon.html.HR.tag
 
4518
web2py.gluon.html.HTML.tag
 
4519
web2py.gluon.html.I.tag
 
4520
web2py.gluon.html.IFRAME.tag
 
4521
web2py.gluon.html.IMG.tag
 
4522
web2py.gluon.html.INPUT.tag
 
4523
web2py.gluon.html.LABEL.tag
 
4524
web2py.gluon.html.LEGEND.tag
 
4525
web2py.gluon.html.LI.tag
 
4526
web2py.gluon.html.LINK.tag
 
4527
web2py.gluon.html.MENU.tag
 
4528
web2py.gluon.html.META.tag
 
4529
web2py.gluon.html.OBJECT.tag
 
4530
web2py.gluon.html.OL.tag
 
4531
web2py.gluon.html.OPTGROUP.tag
 
4532
web2py.gluon.html.OPTION.tag
 
4533
web2py.gluon.html.P.tag
 
4534
web2py.gluon.html.PRE.tag
 
4535
web2py.gluon.html.SCRIPT.tag
 
4536
web2py.gluon.html.SELECT.tag
 
4537
web2py.gluon.html.SPAN.tag
 
4538
web2py.gluon.html.STYLE.tag
 
4539
web2py.gluon.html.TABLE.tag
 
4540
web2py.gluon.html.TBODY.tag
 
4541
web2py.gluon.html.TD.tag
 
4542
web2py.gluon.html.TEXTAREA.tag
 
4543
web2py.gluon.html.TFOOT.tag
 
4544
web2py.gluon.html.TH.tag
 
4545
web2py.gluon.html.THEAD.tag
 
4546
web2py.gluon.html.TITLE.tag
 
4547
web2py.gluon.html.TR.tag
 
4548
web2py.gluon.html.TT.tag
 
4549
web2py.gluon.html.UL.tag
 
4550
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-280', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'center'</tt> </tt>
 
4551
</div><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"> </tt>
 
4552
<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line"> </tt>
 
4553
<a name="CODE"></a><div id="CODE-def"><a name="L1348"></a><tt class="py-lineno">1348</tt> <a class="py-toggle" href="#" id="CODE-toggle" onclick="return toggle('CODE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.CODE-class.html">CODE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4554
</div><div id="CODE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CODE-expanded"><a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"> </tt>
 
4555
<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
4556
<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-docstring">    displays code in HTML with syntax highlighting.</tt> </tt>
 
4557
<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4558
<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-docstring">    :param attributes: optional attributes:</tt> </tt>
 
4559
<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4560
<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-docstring">        - language: indicates the language, otherwise PYTHON is assumed</tt> </tt>
 
4561
<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-docstring">        - link: can provide a link</tt> </tt>
 
4562
<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-docstring">        - styles: for styles</tt> </tt>
 
4563
<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4564
<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-docstring">    Example::</tt> </tt>
 
4565
<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4566
<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-docstring">        {{=CODE(\"print 'hello world'\", language='python', link=None,</tt> </tt>
 
4567
<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-docstring">            counter=1, styles={}, highlight_line=None)}}</tt> </tt>
 
4568
<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4569
<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4570
<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-docstring">    supported languages are \"python\", \"html_plain\", \"c\", \"cpp\",</tt> </tt>
 
4571
<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-docstring">    \"web2py\", \"html\".</tt> </tt>
 
4572
<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-docstring">    The \"html\" language interprets {{ and }} tags as \"web2py\" code,</tt> </tt>
 
4573
<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-docstring">    \"html_plain\" doesn't.</tt> </tt>
 
4574
<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4575
<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"><tt class="py-docstring">    if a link='/examples/global/vars/' is provided web2py keywords are linked to</tt> </tt>
 
4576
<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"><tt class="py-docstring">    the online docs.</tt> </tt>
 
4577
<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4578
<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"><tt class="py-docstring">    the counter is used for line numbering, counter can be None or a prompt</tt> </tt>
 
4579
<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"><tt class="py-docstring">    string.</tt> </tt>
 
4580
<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
4581
<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
 
4582
<a name="CODE.xml"></a><div id="CODE.xml-def"><a name="L1377"></a><tt class="py-lineno">1377</tt> <a class="py-toggle" href="#" id="CODE.xml-toggle" onclick="return toggle('CODE.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.CODE-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4583
</div><div id="CODE.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CODE.xml-expanded"><a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">language</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'language'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'PYTHON'</tt> </tt>
 
4584
<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">link</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'link'</tt><tt class="py-op">]</tt> </tt>
 
4585
<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name" targets="Method web2py.gluon.dal.Reference.get()=web2py.gluon.dal.Reference-class.html#get"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-281', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'counter'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
 
4586
<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">highlight_line</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-282', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'highlight_line'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
4587
<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-name">styles</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'styles'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
4588
<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-283" class="py-name"><a title="web2py.gluon.highlight
4551
4589
web2py.gluon.highlight.Highlighter.highlight
4552
 
web2py.gluon.highlight.highlight" class="py-name" href="#" onclick="return doclink('link-293', 'highlight', 'link-7');">highlight</a></tt><tt class="py-op">(</tt> </tt>
4553
 
<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">            <tt id="link-294" class="py-name"><a title="web2py.gluon.html.join" class="py-name" href="#" onclick="return doclink('link-294', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
4554
 
<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">            <tt class="py-name">language</tt><tt class="py-op">=</tt><tt class="py-name">language</tt><tt class="py-op">,</tt> </tt>
4555
 
<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">            <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-name">link</tt><tt class="py-op">,</tt> </tt>
4556
 
<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">            <tt class="py-name">counter</tt><tt class="py-op">=</tt><tt class="py-name">counter</tt><tt class="py-op">,</tt> </tt>
4557
 
<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">            <tt class="py-name">styles</tt><tt class="py-op">=</tt><tt class="py-name">styles</tt><tt class="py-op">,</tt> </tt>
4558
 
<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">            <tt class="py-name">attributes</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">,</tt> </tt>
4559
 
<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">            <tt class="py-name">highlight_line</tt><tt class="py-op">=</tt><tt class="py-name">highlight_line</tt><tt class="py-op">,</tt> </tt>
4560
 
<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
4561
 
</div></div><a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
4562
 
<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"> </tt>
4563
 
<a name="LABEL"></a><div id="LABEL-def"><a name="L1366"></a><tt class="py-lineno">1366</tt> <a class="py-toggle" href="#" id="LABEL-toggle" onclick="return toggle('LABEL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LABEL-class.html">LABEL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4564
 
</div><div id="LABEL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LABEL-expanded"><a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
4565
 
<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">    <tt id="link-295" class="py-name"><a title="web2py.gluon.html.A.tag
4566
 
web2py.gluon.html.B.tag
4567
 
web2py.gluon.html.BEAUTIFY.tag
4568
 
web2py.gluon.html.BODY.tag
4569
 
web2py.gluon.html.BR.tag
4570
 
web2py.gluon.html.BUTTON.tag
4571
 
web2py.gluon.html.CAT.tag
4572
 
web2py.gluon.html.CENTER.tag
4573
 
web2py.gluon.html.COL.tag
4574
 
web2py.gluon.html.COLGROUP.tag
4575
 
web2py.gluon.html.DIV.tag
4576
 
web2py.gluon.html.EM.tag
4577
 
web2py.gluon.html.EMBED.tag
4578
 
web2py.gluon.html.FIELDSET.tag
4579
 
web2py.gluon.html.FORM.tag
4580
 
web2py.gluon.html.H1.tag
4581
 
web2py.gluon.html.H2.tag
4582
 
web2py.gluon.html.H3.tag
4583
 
web2py.gluon.html.H4.tag
4584
 
web2py.gluon.html.H5.tag
4585
 
web2py.gluon.html.H6.tag
4586
 
web2py.gluon.html.HEAD.tag
4587
 
web2py.gluon.html.HR.tag
4588
 
web2py.gluon.html.HTML.tag
4589
 
web2py.gluon.html.I.tag
4590
 
web2py.gluon.html.IFRAME.tag
4591
 
web2py.gluon.html.IMG.tag
4592
 
web2py.gluon.html.INPUT.tag
4593
 
web2py.gluon.html.LABEL.tag
4594
 
web2py.gluon.html.LEGEND.tag
4595
 
web2py.gluon.html.LI.tag
4596
 
web2py.gluon.html.LINK.tag
4597
 
web2py.gluon.html.MENU.tag
4598
 
web2py.gluon.html.META.tag
4599
 
web2py.gluon.html.OBJECT.tag
4600
 
web2py.gluon.html.OL.tag
4601
 
web2py.gluon.html.OPTGROUP.tag
4602
 
web2py.gluon.html.OPTION.tag
4603
 
web2py.gluon.html.P.tag
4604
 
web2py.gluon.html.PRE.tag
4605
 
web2py.gluon.html.SCRIPT.tag
4606
 
web2py.gluon.html.SELECT.tag
4607
 
web2py.gluon.html.SPAN.tag
4608
 
web2py.gluon.html.STYLE.tag
4609
 
web2py.gluon.html.TABLE.tag
4610
 
web2py.gluon.html.TBODY.tag
4611
 
web2py.gluon.html.TD.tag
4612
 
web2py.gluon.html.TEXTAREA.tag
4613
 
web2py.gluon.html.TFOOT.tag
4614
 
web2py.gluon.html.TH.tag
4615
 
web2py.gluon.html.THEAD.tag
4616
 
web2py.gluon.html.TITLE.tag
4617
 
web2py.gluon.html.TR.tag
4618
 
web2py.gluon.html.TT.tag
4619
 
web2py.gluon.html.UL.tag
4620
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-295', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'label'</tt> </tt>
4621
 
</div><a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
4622
 
<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"> </tt>
4623
 
<a name="LI"></a><div id="LI-def"><a name="L1371"></a><tt class="py-lineno">1371</tt> <a class="py-toggle" href="#" id="LI-toggle" onclick="return toggle('LI');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LI-class.html">LI</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4624
 
</div><div id="LI-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LI-expanded"><a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"> </tt>
4625
 
<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">    <tt id="link-296" class="py-name"><a title="web2py.gluon.html.A.tag
4626
 
web2py.gluon.html.B.tag
4627
 
web2py.gluon.html.BEAUTIFY.tag
4628
 
web2py.gluon.html.BODY.tag
4629
 
web2py.gluon.html.BR.tag
4630
 
web2py.gluon.html.BUTTON.tag
4631
 
web2py.gluon.html.CAT.tag
4632
 
web2py.gluon.html.CENTER.tag
4633
 
web2py.gluon.html.COL.tag
4634
 
web2py.gluon.html.COLGROUP.tag
4635
 
web2py.gluon.html.DIV.tag
4636
 
web2py.gluon.html.EM.tag
4637
 
web2py.gluon.html.EMBED.tag
4638
 
web2py.gluon.html.FIELDSET.tag
4639
 
web2py.gluon.html.FORM.tag
4640
 
web2py.gluon.html.H1.tag
4641
 
web2py.gluon.html.H2.tag
4642
 
web2py.gluon.html.H3.tag
4643
 
web2py.gluon.html.H4.tag
4644
 
web2py.gluon.html.H5.tag
4645
 
web2py.gluon.html.H6.tag
4646
 
web2py.gluon.html.HEAD.tag
4647
 
web2py.gluon.html.HR.tag
4648
 
web2py.gluon.html.HTML.tag
4649
 
web2py.gluon.html.I.tag
4650
 
web2py.gluon.html.IFRAME.tag
4651
 
web2py.gluon.html.IMG.tag
4652
 
web2py.gluon.html.INPUT.tag
4653
 
web2py.gluon.html.LABEL.tag
4654
 
web2py.gluon.html.LEGEND.tag
4655
 
web2py.gluon.html.LI.tag
4656
 
web2py.gluon.html.LINK.tag
4657
 
web2py.gluon.html.MENU.tag
4658
 
web2py.gluon.html.META.tag
4659
 
web2py.gluon.html.OBJECT.tag
4660
 
web2py.gluon.html.OL.tag
4661
 
web2py.gluon.html.OPTGROUP.tag
4662
 
web2py.gluon.html.OPTION.tag
4663
 
web2py.gluon.html.P.tag
4664
 
web2py.gluon.html.PRE.tag
4665
 
web2py.gluon.html.SCRIPT.tag
4666
 
web2py.gluon.html.SELECT.tag
4667
 
web2py.gluon.html.SPAN.tag
4668
 
web2py.gluon.html.STYLE.tag
4669
 
web2py.gluon.html.TABLE.tag
4670
 
web2py.gluon.html.TBODY.tag
4671
 
web2py.gluon.html.TD.tag
4672
 
web2py.gluon.html.TEXTAREA.tag
4673
 
web2py.gluon.html.TFOOT.tag
4674
 
web2py.gluon.html.TH.tag
4675
 
web2py.gluon.html.THEAD.tag
4676
 
web2py.gluon.html.TITLE.tag
4677
 
web2py.gluon.html.TR.tag
4678
 
web2py.gluon.html.TT.tag
4679
 
web2py.gluon.html.UL.tag
4680
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-296', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'li'</tt> </tt>
4681
 
</div><a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"> </tt>
4682
 
<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
4683
 
<a name="UL"></a><div id="UL-def"><a name="L1376"></a><tt class="py-lineno">1376</tt> <a class="py-toggle" href="#" id="UL-toggle" onclick="return toggle('UL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.UL-class.html">UL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4684
 
</div><div id="UL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UL-expanded"><a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
4685
 
<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line"><tt class="py-docstring">    UL Component.</tt> </tt>
4686
 
<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4687
 
<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not LI-components they will be wrapped in a LI</tt> </tt>
4688
 
<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4689
 
<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
4690
 
<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
4691
 
<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"> </tt>
4692
 
<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">    <tt id="link-297" class="py-name"><a title="web2py.gluon.html.A.tag
4693
 
web2py.gluon.html.B.tag
4694
 
web2py.gluon.html.BEAUTIFY.tag
4695
 
web2py.gluon.html.BODY.tag
4696
 
web2py.gluon.html.BR.tag
4697
 
web2py.gluon.html.BUTTON.tag
4698
 
web2py.gluon.html.CAT.tag
4699
 
web2py.gluon.html.CENTER.tag
4700
 
web2py.gluon.html.COL.tag
4701
 
web2py.gluon.html.COLGROUP.tag
4702
 
web2py.gluon.html.DIV.tag
4703
 
web2py.gluon.html.EM.tag
4704
 
web2py.gluon.html.EMBED.tag
4705
 
web2py.gluon.html.FIELDSET.tag
4706
 
web2py.gluon.html.FORM.tag
4707
 
web2py.gluon.html.H1.tag
4708
 
web2py.gluon.html.H2.tag
4709
 
web2py.gluon.html.H3.tag
4710
 
web2py.gluon.html.H4.tag
4711
 
web2py.gluon.html.H5.tag
4712
 
web2py.gluon.html.H6.tag
4713
 
web2py.gluon.html.HEAD.tag
4714
 
web2py.gluon.html.HR.tag
4715
 
web2py.gluon.html.HTML.tag
4716
 
web2py.gluon.html.I.tag
4717
 
web2py.gluon.html.IFRAME.tag
4718
 
web2py.gluon.html.IMG.tag
4719
 
web2py.gluon.html.INPUT.tag
4720
 
web2py.gluon.html.LABEL.tag
4721
 
web2py.gluon.html.LEGEND.tag
4722
 
web2py.gluon.html.LI.tag
4723
 
web2py.gluon.html.LINK.tag
4724
 
web2py.gluon.html.MENU.tag
4725
 
web2py.gluon.html.META.tag
4726
 
web2py.gluon.html.OBJECT.tag
4727
 
web2py.gluon.html.OL.tag
4728
 
web2py.gluon.html.OPTGROUP.tag
4729
 
web2py.gluon.html.OPTION.tag
4730
 
web2py.gluon.html.P.tag
4731
 
web2py.gluon.html.PRE.tag
4732
 
web2py.gluon.html.SCRIPT.tag
4733
 
web2py.gluon.html.SELECT.tag
4734
 
web2py.gluon.html.SPAN.tag
4735
 
web2py.gluon.html.STYLE.tag
4736
 
web2py.gluon.html.TABLE.tag
4737
 
web2py.gluon.html.TBODY.tag
4738
 
web2py.gluon.html.TD.tag
4739
 
web2py.gluon.html.TEXTAREA.tag
4740
 
web2py.gluon.html.TFOOT.tag
4741
 
web2py.gluon.html.TH.tag
4742
 
web2py.gluon.html.THEAD.tag
4743
 
web2py.gluon.html.TITLE.tag
4744
 
web2py.gluon.html.TR.tag
4745
 
web2py.gluon.html.TT.tag
4746
 
web2py.gluon.html.UL.tag
4747
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-297', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ul'</tt> </tt>
4748
 
<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
4749
 
<a name="UL._fixup"></a><div id="UL._fixup-def"><a name="L1387"></a><tt class="py-lineno">1387</tt> <a class="py-toggle" href="#" id="UL._fixup-toggle" onclick="return toggle('UL._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.UL-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4750
 
</div><div id="UL._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="UL._fixup-expanded"><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name" targets="Method web2py.gluon.html.DIV._wrap_components()=web2py.gluon.html.DIV-class.html#_wrap_components"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-298', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-299" class="py-name" targets="Class web2py.gluon.html.LI=web2py.gluon.html.LI-class.html"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-299', 'LI', 'link-299');">LI</a></tt><tt class="py-op">,</tt> <tt id="link-300" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-300', 'LI', 'link-299');">LI</a></tt><tt class="py-op">)</tt> </tt>
4751
 
</div></div><a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line"> </tt>
4752
 
<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"> </tt>
4753
 
<a name="OL"></a><div id="OL-def"><a name="L1391"></a><tt class="py-lineno">1391</tt> <a class="py-toggle" href="#" id="OL-toggle" onclick="return toggle('OL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OL-class.html">OL</a><tt class="py-op">(</tt><tt class="py-base-class">UL</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4754
 
</div><div id="OL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OL-expanded"><a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"> </tt>
4755
 
<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">    <tt id="link-301" class="py-name"><a title="web2py.gluon.html.A.tag
4756
 
web2py.gluon.html.B.tag
4757
 
web2py.gluon.html.BEAUTIFY.tag
4758
 
web2py.gluon.html.BODY.tag
4759
 
web2py.gluon.html.BR.tag
4760
 
web2py.gluon.html.BUTTON.tag
4761
 
web2py.gluon.html.CAT.tag
4762
 
web2py.gluon.html.CENTER.tag
4763
 
web2py.gluon.html.COL.tag
4764
 
web2py.gluon.html.COLGROUP.tag
4765
 
web2py.gluon.html.DIV.tag
4766
 
web2py.gluon.html.EM.tag
4767
 
web2py.gluon.html.EMBED.tag
4768
 
web2py.gluon.html.FIELDSET.tag
4769
 
web2py.gluon.html.FORM.tag
4770
 
web2py.gluon.html.H1.tag
4771
 
web2py.gluon.html.H2.tag
4772
 
web2py.gluon.html.H3.tag
4773
 
web2py.gluon.html.H4.tag
4774
 
web2py.gluon.html.H5.tag
4775
 
web2py.gluon.html.H6.tag
4776
 
web2py.gluon.html.HEAD.tag
4777
 
web2py.gluon.html.HR.tag
4778
 
web2py.gluon.html.HTML.tag
4779
 
web2py.gluon.html.I.tag
4780
 
web2py.gluon.html.IFRAME.tag
4781
 
web2py.gluon.html.IMG.tag
4782
 
web2py.gluon.html.INPUT.tag
4783
 
web2py.gluon.html.LABEL.tag
4784
 
web2py.gluon.html.LEGEND.tag
4785
 
web2py.gluon.html.LI.tag
4786
 
web2py.gluon.html.LINK.tag
4787
 
web2py.gluon.html.MENU.tag
4788
 
web2py.gluon.html.META.tag
4789
 
web2py.gluon.html.OBJECT.tag
4790
 
web2py.gluon.html.OL.tag
4791
 
web2py.gluon.html.OPTGROUP.tag
4792
 
web2py.gluon.html.OPTION.tag
4793
 
web2py.gluon.html.P.tag
4794
 
web2py.gluon.html.PRE.tag
4795
 
web2py.gluon.html.SCRIPT.tag
4796
 
web2py.gluon.html.SELECT.tag
4797
 
web2py.gluon.html.SPAN.tag
4798
 
web2py.gluon.html.STYLE.tag
4799
 
web2py.gluon.html.TABLE.tag
4800
 
web2py.gluon.html.TBODY.tag
4801
 
web2py.gluon.html.TD.tag
4802
 
web2py.gluon.html.TEXTAREA.tag
4803
 
web2py.gluon.html.TFOOT.tag
4804
 
web2py.gluon.html.TH.tag
4805
 
web2py.gluon.html.THEAD.tag
4806
 
web2py.gluon.html.TITLE.tag
4807
 
web2py.gluon.html.TR.tag
4808
 
web2py.gluon.html.TT.tag
4809
 
web2py.gluon.html.UL.tag
4810
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-301', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ol'</tt> </tt>
4811
 
</div><a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"> </tt>
4812
 
<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"> </tt>
4813
 
<a name="TD"></a><div id="TD-def"><a name="L1396"></a><tt class="py-lineno">1396</tt> <a class="py-toggle" href="#" id="TD-toggle" onclick="return toggle('TD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TD-class.html">TD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4814
 
</div><div id="TD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TD-expanded"><a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"> </tt>
4815
 
<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">    <tt id="link-302" class="py-name"><a title="web2py.gluon.html.A.tag
4816
 
web2py.gluon.html.B.tag
4817
 
web2py.gluon.html.BEAUTIFY.tag
4818
 
web2py.gluon.html.BODY.tag
4819
 
web2py.gluon.html.BR.tag
4820
 
web2py.gluon.html.BUTTON.tag
4821
 
web2py.gluon.html.CAT.tag
4822
 
web2py.gluon.html.CENTER.tag
4823
 
web2py.gluon.html.COL.tag
4824
 
web2py.gluon.html.COLGROUP.tag
4825
 
web2py.gluon.html.DIV.tag
4826
 
web2py.gluon.html.EM.tag
4827
 
web2py.gluon.html.EMBED.tag
4828
 
web2py.gluon.html.FIELDSET.tag
4829
 
web2py.gluon.html.FORM.tag
4830
 
web2py.gluon.html.H1.tag
4831
 
web2py.gluon.html.H2.tag
4832
 
web2py.gluon.html.H3.tag
4833
 
web2py.gluon.html.H4.tag
4834
 
web2py.gluon.html.H5.tag
4835
 
web2py.gluon.html.H6.tag
4836
 
web2py.gluon.html.HEAD.tag
4837
 
web2py.gluon.html.HR.tag
4838
 
web2py.gluon.html.HTML.tag
4839
 
web2py.gluon.html.I.tag
4840
 
web2py.gluon.html.IFRAME.tag
4841
 
web2py.gluon.html.IMG.tag
4842
 
web2py.gluon.html.INPUT.tag
4843
 
web2py.gluon.html.LABEL.tag
4844
 
web2py.gluon.html.LEGEND.tag
4845
 
web2py.gluon.html.LI.tag
4846
 
web2py.gluon.html.LINK.tag
4847
 
web2py.gluon.html.MENU.tag
4848
 
web2py.gluon.html.META.tag
4849
 
web2py.gluon.html.OBJECT.tag
4850
 
web2py.gluon.html.OL.tag
4851
 
web2py.gluon.html.OPTGROUP.tag
4852
 
web2py.gluon.html.OPTION.tag
4853
 
web2py.gluon.html.P.tag
4854
 
web2py.gluon.html.PRE.tag
4855
 
web2py.gluon.html.SCRIPT.tag
4856
 
web2py.gluon.html.SELECT.tag
4857
 
web2py.gluon.html.SPAN.tag
4858
 
web2py.gluon.html.STYLE.tag
4859
 
web2py.gluon.html.TABLE.tag
4860
 
web2py.gluon.html.TBODY.tag
4861
 
web2py.gluon.html.TD.tag
4862
 
web2py.gluon.html.TEXTAREA.tag
4863
 
web2py.gluon.html.TFOOT.tag
4864
 
web2py.gluon.html.TH.tag
4865
 
web2py.gluon.html.THEAD.tag
4866
 
web2py.gluon.html.TITLE.tag
4867
 
web2py.gluon.html.TR.tag
4868
 
web2py.gluon.html.TT.tag
4869
 
web2py.gluon.html.UL.tag
4870
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-302', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'td'</tt> </tt>
4871
 
</div><a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
4872
 
<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"> </tt>
4873
 
<a name="TH"></a><div id="TH-def"><a name="L1401"></a><tt class="py-lineno">1401</tt> <a class="py-toggle" href="#" id="TH-toggle" onclick="return toggle('TH');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TH-class.html">TH</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4874
 
</div><div id="TH-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TH-expanded"><a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"> </tt>
4875
 
<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">    <tt id="link-303" class="py-name"><a title="web2py.gluon.html.A.tag
4876
 
web2py.gluon.html.B.tag
4877
 
web2py.gluon.html.BEAUTIFY.tag
4878
 
web2py.gluon.html.BODY.tag
4879
 
web2py.gluon.html.BR.tag
4880
 
web2py.gluon.html.BUTTON.tag
4881
 
web2py.gluon.html.CAT.tag
4882
 
web2py.gluon.html.CENTER.tag
4883
 
web2py.gluon.html.COL.tag
4884
 
web2py.gluon.html.COLGROUP.tag
4885
 
web2py.gluon.html.DIV.tag
4886
 
web2py.gluon.html.EM.tag
4887
 
web2py.gluon.html.EMBED.tag
4888
 
web2py.gluon.html.FIELDSET.tag
4889
 
web2py.gluon.html.FORM.tag
4890
 
web2py.gluon.html.H1.tag
4891
 
web2py.gluon.html.H2.tag
4892
 
web2py.gluon.html.H3.tag
4893
 
web2py.gluon.html.H4.tag
4894
 
web2py.gluon.html.H5.tag
4895
 
web2py.gluon.html.H6.tag
4896
 
web2py.gluon.html.HEAD.tag
4897
 
web2py.gluon.html.HR.tag
4898
 
web2py.gluon.html.HTML.tag
4899
 
web2py.gluon.html.I.tag
4900
 
web2py.gluon.html.IFRAME.tag
4901
 
web2py.gluon.html.IMG.tag
4902
 
web2py.gluon.html.INPUT.tag
4903
 
web2py.gluon.html.LABEL.tag
4904
 
web2py.gluon.html.LEGEND.tag
4905
 
web2py.gluon.html.LI.tag
4906
 
web2py.gluon.html.LINK.tag
4907
 
web2py.gluon.html.MENU.tag
4908
 
web2py.gluon.html.META.tag
4909
 
web2py.gluon.html.OBJECT.tag
4910
 
web2py.gluon.html.OL.tag
4911
 
web2py.gluon.html.OPTGROUP.tag
4912
 
web2py.gluon.html.OPTION.tag
4913
 
web2py.gluon.html.P.tag
4914
 
web2py.gluon.html.PRE.tag
4915
 
web2py.gluon.html.SCRIPT.tag
4916
 
web2py.gluon.html.SELECT.tag
4917
 
web2py.gluon.html.SPAN.tag
4918
 
web2py.gluon.html.STYLE.tag
4919
 
web2py.gluon.html.TABLE.tag
4920
 
web2py.gluon.html.TBODY.tag
4921
 
web2py.gluon.html.TD.tag
4922
 
web2py.gluon.html.TEXTAREA.tag
4923
 
web2py.gluon.html.TFOOT.tag
4924
 
web2py.gluon.html.TH.tag
4925
 
web2py.gluon.html.THEAD.tag
4926
 
web2py.gluon.html.TITLE.tag
4927
 
web2py.gluon.html.TR.tag
4928
 
web2py.gluon.html.TT.tag
4929
 
web2py.gluon.html.UL.tag
4930
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-303', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'th'</tt> </tt>
4931
 
</div><a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"> </tt>
4932
 
<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"> </tt>
4933
 
<a name="TR"></a><div id="TR-def"><a name="L1406"></a><tt class="py-lineno">1406</tt> <a class="py-toggle" href="#" id="TR-toggle" onclick="return toggle('TR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TR-class.html">TR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
4934
 
</div><div id="TR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TR-expanded"><a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
4935
 
<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-docstring">    TR Component.</tt> </tt>
 
4590
web2py.gluon.highlight.highlight" class="py-name" href="#" onclick="return doclink('link-283', 'highlight', 'link-7');">highlight</a></tt><tt class="py-op">(</tt> </tt>
 
4591
<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt id="link-284" class="py-name"><a title="web2py.gluon.html.join
 
4592
web2py.gluon.rocket.Listener.join" class="py-name" href="#" onclick="return doclink('link-284', 'join', 'link-13');">join</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 
4593
<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">            <tt class="py-name">language</tt><tt class="py-op">=</tt><tt class="py-name">language</tt><tt class="py-op">,</tt> </tt>
 
4594
<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">            <tt class="py-name">link</tt><tt class="py-op">=</tt><tt class="py-name">link</tt><tt class="py-op">,</tt> </tt>
 
4595
<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">            <tt class="py-name">counter</tt><tt class="py-op">=</tt><tt class="py-name">counter</tt><tt class="py-op">,</tt> </tt>
 
4596
<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">            <tt class="py-name">styles</tt><tt class="py-op">=</tt><tt class="py-name">styles</tt><tt class="py-op">,</tt> </tt>
 
4597
<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">            <tt class="py-name">attributes</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">,</tt> </tt>
 
4598
<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-name">highlight_line</tt><tt class="py-op">=</tt><tt class="py-name">highlight_line</tt><tt class="py-op">,</tt> </tt>
 
4599
<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
 
4600
</div></div><a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"> </tt>
 
4601
<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"> </tt>
 
4602
<a name="LABEL"></a><div id="LABEL-def"><a name="L1394"></a><tt class="py-lineno">1394</tt> <a class="py-toggle" href="#" id="LABEL-toggle" onclick="return toggle('LABEL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LABEL-class.html">LABEL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4603
</div><div id="LABEL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LABEL-expanded"><a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"> </tt>
 
4604
<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">    <tt id="link-285" class="py-name"><a title="web2py.gluon.html.A.tag
 
4605
web2py.gluon.html.B.tag
 
4606
web2py.gluon.html.BEAUTIFY.tag
 
4607
web2py.gluon.html.BODY.tag
 
4608
web2py.gluon.html.BR.tag
 
4609
web2py.gluon.html.BUTTON.tag
 
4610
web2py.gluon.html.CAT.tag
 
4611
web2py.gluon.html.CENTER.tag
 
4612
web2py.gluon.html.COL.tag
 
4613
web2py.gluon.html.COLGROUP.tag
 
4614
web2py.gluon.html.DIV.tag
 
4615
web2py.gluon.html.EM.tag
 
4616
web2py.gluon.html.EMBED.tag
 
4617
web2py.gluon.html.FIELDSET.tag
 
4618
web2py.gluon.html.FORM.tag
 
4619
web2py.gluon.html.H1.tag
 
4620
web2py.gluon.html.H2.tag
 
4621
web2py.gluon.html.H3.tag
 
4622
web2py.gluon.html.H4.tag
 
4623
web2py.gluon.html.H5.tag
 
4624
web2py.gluon.html.H6.tag
 
4625
web2py.gluon.html.HEAD.tag
 
4626
web2py.gluon.html.HR.tag
 
4627
web2py.gluon.html.HTML.tag
 
4628
web2py.gluon.html.I.tag
 
4629
web2py.gluon.html.IFRAME.tag
 
4630
web2py.gluon.html.IMG.tag
 
4631
web2py.gluon.html.INPUT.tag
 
4632
web2py.gluon.html.LABEL.tag
 
4633
web2py.gluon.html.LEGEND.tag
 
4634
web2py.gluon.html.LI.tag
 
4635
web2py.gluon.html.LINK.tag
 
4636
web2py.gluon.html.MENU.tag
 
4637
web2py.gluon.html.META.tag
 
4638
web2py.gluon.html.OBJECT.tag
 
4639
web2py.gluon.html.OL.tag
 
4640
web2py.gluon.html.OPTGROUP.tag
 
4641
web2py.gluon.html.OPTION.tag
 
4642
web2py.gluon.html.P.tag
 
4643
web2py.gluon.html.PRE.tag
 
4644
web2py.gluon.html.SCRIPT.tag
 
4645
web2py.gluon.html.SELECT.tag
 
4646
web2py.gluon.html.SPAN.tag
 
4647
web2py.gluon.html.STYLE.tag
 
4648
web2py.gluon.html.TABLE.tag
 
4649
web2py.gluon.html.TBODY.tag
 
4650
web2py.gluon.html.TD.tag
 
4651
web2py.gluon.html.TEXTAREA.tag
 
4652
web2py.gluon.html.TFOOT.tag
 
4653
web2py.gluon.html.TH.tag
 
4654
web2py.gluon.html.THEAD.tag
 
4655
web2py.gluon.html.TITLE.tag
 
4656
web2py.gluon.html.TR.tag
 
4657
web2py.gluon.html.TT.tag
 
4658
web2py.gluon.html.UL.tag
 
4659
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-285', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'label'</tt> </tt>
 
4660
</div><a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"> </tt>
 
4661
<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"> </tt>
 
4662
<a name="LI"></a><div id="LI-def"><a name="L1399"></a><tt class="py-lineno">1399</tt> <a class="py-toggle" href="#" id="LI-toggle" onclick="return toggle('LI');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LI-class.html">LI</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4663
</div><div id="LI-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LI-expanded"><a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"> </tt>
 
4664
<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">    <tt id="link-286" class="py-name"><a title="web2py.gluon.html.A.tag
 
4665
web2py.gluon.html.B.tag
 
4666
web2py.gluon.html.BEAUTIFY.tag
 
4667
web2py.gluon.html.BODY.tag
 
4668
web2py.gluon.html.BR.tag
 
4669
web2py.gluon.html.BUTTON.tag
 
4670
web2py.gluon.html.CAT.tag
 
4671
web2py.gluon.html.CENTER.tag
 
4672
web2py.gluon.html.COL.tag
 
4673
web2py.gluon.html.COLGROUP.tag
 
4674
web2py.gluon.html.DIV.tag
 
4675
web2py.gluon.html.EM.tag
 
4676
web2py.gluon.html.EMBED.tag
 
4677
web2py.gluon.html.FIELDSET.tag
 
4678
web2py.gluon.html.FORM.tag
 
4679
web2py.gluon.html.H1.tag
 
4680
web2py.gluon.html.H2.tag
 
4681
web2py.gluon.html.H3.tag
 
4682
web2py.gluon.html.H4.tag
 
4683
web2py.gluon.html.H5.tag
 
4684
web2py.gluon.html.H6.tag
 
4685
web2py.gluon.html.HEAD.tag
 
4686
web2py.gluon.html.HR.tag
 
4687
web2py.gluon.html.HTML.tag
 
4688
web2py.gluon.html.I.tag
 
4689
web2py.gluon.html.IFRAME.tag
 
4690
web2py.gluon.html.IMG.tag
 
4691
web2py.gluon.html.INPUT.tag
 
4692
web2py.gluon.html.LABEL.tag
 
4693
web2py.gluon.html.LEGEND.tag
 
4694
web2py.gluon.html.LI.tag
 
4695
web2py.gluon.html.LINK.tag
 
4696
web2py.gluon.html.MENU.tag
 
4697
web2py.gluon.html.META.tag
 
4698
web2py.gluon.html.OBJECT.tag
 
4699
web2py.gluon.html.OL.tag
 
4700
web2py.gluon.html.OPTGROUP.tag
 
4701
web2py.gluon.html.OPTION.tag
 
4702
web2py.gluon.html.P.tag
 
4703
web2py.gluon.html.PRE.tag
 
4704
web2py.gluon.html.SCRIPT.tag
 
4705
web2py.gluon.html.SELECT.tag
 
4706
web2py.gluon.html.SPAN.tag
 
4707
web2py.gluon.html.STYLE.tag
 
4708
web2py.gluon.html.TABLE.tag
 
4709
web2py.gluon.html.TBODY.tag
 
4710
web2py.gluon.html.TD.tag
 
4711
web2py.gluon.html.TEXTAREA.tag
 
4712
web2py.gluon.html.TFOOT.tag
 
4713
web2py.gluon.html.TH.tag
 
4714
web2py.gluon.html.THEAD.tag
 
4715
web2py.gluon.html.TITLE.tag
 
4716
web2py.gluon.html.TR.tag
 
4717
web2py.gluon.html.TT.tag
 
4718
web2py.gluon.html.UL.tag
 
4719
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-286', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'li'</tt> </tt>
 
4720
</div><a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"> </tt>
 
4721
<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"> </tt>
 
4722
<a name="UL"></a><div id="UL-def"><a name="L1404"></a><tt class="py-lineno">1404</tt> <a class="py-toggle" href="#" id="UL-toggle" onclick="return toggle('UL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.UL-class.html">UL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4723
</div><div id="UL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UL-expanded"><a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
4724
<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"><tt class="py-docstring">    UL Component.</tt> </tt>
 
4725
<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4726
<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not LI-components they will be wrapped in a LI</tt> </tt>
4936
4727
<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4937
 
<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not TD/TH-components they will be wrapped in a TD</tt> </tt>
4938
 
<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
4939
 
<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
4940
 
<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
4728
<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
 
4729
<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
4730
<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"> </tt>
 
4731
<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt id="link-287" class="py-name"><a title="web2py.gluon.html.A.tag
 
4732
web2py.gluon.html.B.tag
 
4733
web2py.gluon.html.BEAUTIFY.tag
 
4734
web2py.gluon.html.BODY.tag
 
4735
web2py.gluon.html.BR.tag
 
4736
web2py.gluon.html.BUTTON.tag
 
4737
web2py.gluon.html.CAT.tag
 
4738
web2py.gluon.html.CENTER.tag
 
4739
web2py.gluon.html.COL.tag
 
4740
web2py.gluon.html.COLGROUP.tag
 
4741
web2py.gluon.html.DIV.tag
 
4742
web2py.gluon.html.EM.tag
 
4743
web2py.gluon.html.EMBED.tag
 
4744
web2py.gluon.html.FIELDSET.tag
 
4745
web2py.gluon.html.FORM.tag
 
4746
web2py.gluon.html.H1.tag
 
4747
web2py.gluon.html.H2.tag
 
4748
web2py.gluon.html.H3.tag
 
4749
web2py.gluon.html.H4.tag
 
4750
web2py.gluon.html.H5.tag
 
4751
web2py.gluon.html.H6.tag
 
4752
web2py.gluon.html.HEAD.tag
 
4753
web2py.gluon.html.HR.tag
 
4754
web2py.gluon.html.HTML.tag
 
4755
web2py.gluon.html.I.tag
 
4756
web2py.gluon.html.IFRAME.tag
 
4757
web2py.gluon.html.IMG.tag
 
4758
web2py.gluon.html.INPUT.tag
 
4759
web2py.gluon.html.LABEL.tag
 
4760
web2py.gluon.html.LEGEND.tag
 
4761
web2py.gluon.html.LI.tag
 
4762
web2py.gluon.html.LINK.tag
 
4763
web2py.gluon.html.MENU.tag
 
4764
web2py.gluon.html.META.tag
 
4765
web2py.gluon.html.OBJECT.tag
 
4766
web2py.gluon.html.OL.tag
 
4767
web2py.gluon.html.OPTGROUP.tag
 
4768
web2py.gluon.html.OPTION.tag
 
4769
web2py.gluon.html.P.tag
 
4770
web2py.gluon.html.PRE.tag
 
4771
web2py.gluon.html.SCRIPT.tag
 
4772
web2py.gluon.html.SELECT.tag
 
4773
web2py.gluon.html.SPAN.tag
 
4774
web2py.gluon.html.STYLE.tag
 
4775
web2py.gluon.html.TABLE.tag
 
4776
web2py.gluon.html.TBODY.tag
 
4777
web2py.gluon.html.TD.tag
 
4778
web2py.gluon.html.TEXTAREA.tag
 
4779
web2py.gluon.html.TFOOT.tag
 
4780
web2py.gluon.html.TH.tag
 
4781
web2py.gluon.html.THEAD.tag
 
4782
web2py.gluon.html.TITLE.tag
 
4783
web2py.gluon.html.TR.tag
 
4784
web2py.gluon.html.TT.tag
 
4785
web2py.gluon.html.UL.tag
 
4786
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-287', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ul'</tt> </tt>
4941
4787
<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"> </tt>
4942
 
<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">    <tt id="link-304" class="py-name"><a title="web2py.gluon.html.A.tag
4943
 
web2py.gluon.html.B.tag
4944
 
web2py.gluon.html.BEAUTIFY.tag
4945
 
web2py.gluon.html.BODY.tag
4946
 
web2py.gluon.html.BR.tag
4947
 
web2py.gluon.html.BUTTON.tag
4948
 
web2py.gluon.html.CAT.tag
4949
 
web2py.gluon.html.CENTER.tag
4950
 
web2py.gluon.html.COL.tag
4951
 
web2py.gluon.html.COLGROUP.tag
4952
 
web2py.gluon.html.DIV.tag
4953
 
web2py.gluon.html.EM.tag
4954
 
web2py.gluon.html.EMBED.tag
4955
 
web2py.gluon.html.FIELDSET.tag
4956
 
web2py.gluon.html.FORM.tag
4957
 
web2py.gluon.html.H1.tag
4958
 
web2py.gluon.html.H2.tag
4959
 
web2py.gluon.html.H3.tag
4960
 
web2py.gluon.html.H4.tag
4961
 
web2py.gluon.html.H5.tag
4962
 
web2py.gluon.html.H6.tag
4963
 
web2py.gluon.html.HEAD.tag
4964
 
web2py.gluon.html.HR.tag
4965
 
web2py.gluon.html.HTML.tag
4966
 
web2py.gluon.html.I.tag
4967
 
web2py.gluon.html.IFRAME.tag
4968
 
web2py.gluon.html.IMG.tag
4969
 
web2py.gluon.html.INPUT.tag
4970
 
web2py.gluon.html.LABEL.tag
4971
 
web2py.gluon.html.LEGEND.tag
4972
 
web2py.gluon.html.LI.tag
4973
 
web2py.gluon.html.LINK.tag
4974
 
web2py.gluon.html.MENU.tag
4975
 
web2py.gluon.html.META.tag
4976
 
web2py.gluon.html.OBJECT.tag
4977
 
web2py.gluon.html.OL.tag
4978
 
web2py.gluon.html.OPTGROUP.tag
4979
 
web2py.gluon.html.OPTION.tag
4980
 
web2py.gluon.html.P.tag
4981
 
web2py.gluon.html.PRE.tag
4982
 
web2py.gluon.html.SCRIPT.tag
4983
 
web2py.gluon.html.SELECT.tag
4984
 
web2py.gluon.html.SPAN.tag
4985
 
web2py.gluon.html.STYLE.tag
4986
 
web2py.gluon.html.TABLE.tag
4987
 
web2py.gluon.html.TBODY.tag
4988
 
web2py.gluon.html.TD.tag
4989
 
web2py.gluon.html.TEXTAREA.tag
4990
 
web2py.gluon.html.TFOOT.tag
4991
 
web2py.gluon.html.TH.tag
4992
 
web2py.gluon.html.THEAD.tag
4993
 
web2py.gluon.html.TITLE.tag
4994
 
web2py.gluon.html.TR.tag
4995
 
web2py.gluon.html.TT.tag
4996
 
web2py.gluon.html.UL.tag
4997
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-304', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tr'</tt> </tt>
4998
 
<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
4999
 
<a name="TR._fixup"></a><div id="TR._fixup-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="TR._fixup-toggle" onclick="return toggle('TR._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TR-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5000
 
</div><div id="TR._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TR._fixup-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-305', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-306" class="py-name" targets="Class web2py.gluon.html.TD=web2py.gluon.html.TD-class.html"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-306', 'TD', 'link-306');">TD</a></tt><tt class="py-op">,</tt> <tt id="link-307" class="py-name" targets="Class web2py.gluon.html.TH=web2py.gluon.html.TH-class.html"><a title="web2py.gluon.html.TH" class="py-name" href="#" onclick="return doclink('link-307', 'TH', 'link-307');">TH</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-308" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-308', 'TD', 'link-306');">TD</a></tt><tt class="py-op">)</tt> </tt>
5001
 
</div></div><a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"> </tt>
5002
 
<a name="THEAD"></a><div id="THEAD-def"><a name="L1420"></a><tt class="py-lineno">1420</tt> <a class="py-toggle" href="#" id="THEAD-toggle" onclick="return toggle('THEAD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.THEAD-class.html">THEAD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5003
 
</div><div id="THEAD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="THEAD-expanded"><a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line"> </tt>
5004
 
<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">    <tt id="link-309" class="py-name"><a title="web2py.gluon.html.A.tag
5005
 
web2py.gluon.html.B.tag
5006
 
web2py.gluon.html.BEAUTIFY.tag
5007
 
web2py.gluon.html.BODY.tag
5008
 
web2py.gluon.html.BR.tag
5009
 
web2py.gluon.html.BUTTON.tag
5010
 
web2py.gluon.html.CAT.tag
5011
 
web2py.gluon.html.CENTER.tag
5012
 
web2py.gluon.html.COL.tag
5013
 
web2py.gluon.html.COLGROUP.tag
5014
 
web2py.gluon.html.DIV.tag
5015
 
web2py.gluon.html.EM.tag
5016
 
web2py.gluon.html.EMBED.tag
5017
 
web2py.gluon.html.FIELDSET.tag
5018
 
web2py.gluon.html.FORM.tag
5019
 
web2py.gluon.html.H1.tag
5020
 
web2py.gluon.html.H2.tag
5021
 
web2py.gluon.html.H3.tag
5022
 
web2py.gluon.html.H4.tag
5023
 
web2py.gluon.html.H5.tag
5024
 
web2py.gluon.html.H6.tag
5025
 
web2py.gluon.html.HEAD.tag
5026
 
web2py.gluon.html.HR.tag
5027
 
web2py.gluon.html.HTML.tag
5028
 
web2py.gluon.html.I.tag
5029
 
web2py.gluon.html.IFRAME.tag
5030
 
web2py.gluon.html.IMG.tag
5031
 
web2py.gluon.html.INPUT.tag
5032
 
web2py.gluon.html.LABEL.tag
5033
 
web2py.gluon.html.LEGEND.tag
5034
 
web2py.gluon.html.LI.tag
5035
 
web2py.gluon.html.LINK.tag
5036
 
web2py.gluon.html.MENU.tag
5037
 
web2py.gluon.html.META.tag
5038
 
web2py.gluon.html.OBJECT.tag
5039
 
web2py.gluon.html.OL.tag
5040
 
web2py.gluon.html.OPTGROUP.tag
5041
 
web2py.gluon.html.OPTION.tag
5042
 
web2py.gluon.html.P.tag
5043
 
web2py.gluon.html.PRE.tag
5044
 
web2py.gluon.html.SCRIPT.tag
5045
 
web2py.gluon.html.SELECT.tag
5046
 
web2py.gluon.html.SPAN.tag
5047
 
web2py.gluon.html.STYLE.tag
5048
 
web2py.gluon.html.TABLE.tag
5049
 
web2py.gluon.html.TBODY.tag
5050
 
web2py.gluon.html.TD.tag
5051
 
web2py.gluon.html.TEXTAREA.tag
5052
 
web2py.gluon.html.TFOOT.tag
5053
 
web2py.gluon.html.TH.tag
5054
 
web2py.gluon.html.THEAD.tag
5055
 
web2py.gluon.html.TITLE.tag
5056
 
web2py.gluon.html.TR.tag
5057
 
web2py.gluon.html.TT.tag
5058
 
web2py.gluon.html.UL.tag
5059
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-309', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'thead'</tt> </tt>
 
4788
<a name="UL._fixup"></a><div id="UL._fixup-def"><a name="L1415"></a><tt class="py-lineno">1415</tt> <a class="py-toggle" href="#" id="UL._fixup-toggle" onclick="return toggle('UL._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.UL-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4789
</div><div id="UL._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="UL._fixup-expanded"><a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name" targets="Method web2py.gluon.html.DIV._wrap_components()=web2py.gluon.html.DIV-class.html#_wrap_components"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-288', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-289" class="py-name" targets="Class web2py.gluon.html.LI=web2py.gluon.html.LI-class.html"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-289', 'LI', 'link-289');">LI</a></tt><tt class="py-op">,</tt> <tt id="link-290" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-290', 'LI', 'link-289');">LI</a></tt><tt class="py-op">)</tt> </tt>
 
4790
</div></div><a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"> </tt>
 
4791
<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"> </tt>
 
4792
<a name="OL"></a><div id="OL-def"><a name="L1419"></a><tt class="py-lineno">1419</tt> <a class="py-toggle" href="#" id="OL-toggle" onclick="return toggle('OL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OL-class.html">OL</a><tt class="py-op">(</tt><tt class="py-base-class">UL</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4793
</div><div id="OL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OL-expanded"><a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"> </tt>
 
4794
<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">    <tt id="link-291" class="py-name"><a title="web2py.gluon.html.A.tag
 
4795
web2py.gluon.html.B.tag
 
4796
web2py.gluon.html.BEAUTIFY.tag
 
4797
web2py.gluon.html.BODY.tag
 
4798
web2py.gluon.html.BR.tag
 
4799
web2py.gluon.html.BUTTON.tag
 
4800
web2py.gluon.html.CAT.tag
 
4801
web2py.gluon.html.CENTER.tag
 
4802
web2py.gluon.html.COL.tag
 
4803
web2py.gluon.html.COLGROUP.tag
 
4804
web2py.gluon.html.DIV.tag
 
4805
web2py.gluon.html.EM.tag
 
4806
web2py.gluon.html.EMBED.tag
 
4807
web2py.gluon.html.FIELDSET.tag
 
4808
web2py.gluon.html.FORM.tag
 
4809
web2py.gluon.html.H1.tag
 
4810
web2py.gluon.html.H2.tag
 
4811
web2py.gluon.html.H3.tag
 
4812
web2py.gluon.html.H4.tag
 
4813
web2py.gluon.html.H5.tag
 
4814
web2py.gluon.html.H6.tag
 
4815
web2py.gluon.html.HEAD.tag
 
4816
web2py.gluon.html.HR.tag
 
4817
web2py.gluon.html.HTML.tag
 
4818
web2py.gluon.html.I.tag
 
4819
web2py.gluon.html.IFRAME.tag
 
4820
web2py.gluon.html.IMG.tag
 
4821
web2py.gluon.html.INPUT.tag
 
4822
web2py.gluon.html.LABEL.tag
 
4823
web2py.gluon.html.LEGEND.tag
 
4824
web2py.gluon.html.LI.tag
 
4825
web2py.gluon.html.LINK.tag
 
4826
web2py.gluon.html.MENU.tag
 
4827
web2py.gluon.html.META.tag
 
4828
web2py.gluon.html.OBJECT.tag
 
4829
web2py.gluon.html.OL.tag
 
4830
web2py.gluon.html.OPTGROUP.tag
 
4831
web2py.gluon.html.OPTION.tag
 
4832
web2py.gluon.html.P.tag
 
4833
web2py.gluon.html.PRE.tag
 
4834
web2py.gluon.html.SCRIPT.tag
 
4835
web2py.gluon.html.SELECT.tag
 
4836
web2py.gluon.html.SPAN.tag
 
4837
web2py.gluon.html.STYLE.tag
 
4838
web2py.gluon.html.TABLE.tag
 
4839
web2py.gluon.html.TBODY.tag
 
4840
web2py.gluon.html.TD.tag
 
4841
web2py.gluon.html.TEXTAREA.tag
 
4842
web2py.gluon.html.TFOOT.tag
 
4843
web2py.gluon.html.TH.tag
 
4844
web2py.gluon.html.THEAD.tag
 
4845
web2py.gluon.html.TITLE.tag
 
4846
web2py.gluon.html.TR.tag
 
4847
web2py.gluon.html.TT.tag
 
4848
web2py.gluon.html.UL.tag
 
4849
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-291', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ol'</tt> </tt>
 
4850
</div><a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"> </tt>
5060
4851
<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"> </tt>
5061
 
<a name="THEAD._fixup"></a><div id="THEAD._fixup-def"><a name="L1424"></a><tt class="py-lineno">1424</tt> <a class="py-toggle" href="#" id="THEAD._fixup-toggle" onclick="return toggle('THEAD._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.THEAD-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5062
 
</div><div id="THEAD._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="THEAD._fixup-expanded"><a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-310', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-311" class="py-name" targets="Class web2py.gluon.html.TR=web2py.gluon.html.TR-class.html"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-311', 'TR', 'link-311');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-312" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-312', 'TR', 'link-311');">TR</a></tt><tt class="py-op">)</tt> </tt>
5063
 
</div></div><a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"> </tt>
5064
 
<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
5065
 
<a name="TBODY"></a><div id="TBODY-def"><a name="L1428"></a><tt class="py-lineno">1428</tt> <a class="py-toggle" href="#" id="TBODY-toggle" onclick="return toggle('TBODY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TBODY-class.html">TBODY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5066
 
</div><div id="TBODY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TBODY-expanded"><a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"> </tt>
5067
 
<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">    <tt id="link-313" class="py-name"><a title="web2py.gluon.html.A.tag
5068
 
web2py.gluon.html.B.tag
5069
 
web2py.gluon.html.BEAUTIFY.tag
5070
 
web2py.gluon.html.BODY.tag
5071
 
web2py.gluon.html.BR.tag
5072
 
web2py.gluon.html.BUTTON.tag
5073
 
web2py.gluon.html.CAT.tag
5074
 
web2py.gluon.html.CENTER.tag
5075
 
web2py.gluon.html.COL.tag
5076
 
web2py.gluon.html.COLGROUP.tag
5077
 
web2py.gluon.html.DIV.tag
5078
 
web2py.gluon.html.EM.tag
5079
 
web2py.gluon.html.EMBED.tag
5080
 
web2py.gluon.html.FIELDSET.tag
5081
 
web2py.gluon.html.FORM.tag
5082
 
web2py.gluon.html.H1.tag
5083
 
web2py.gluon.html.H2.tag
5084
 
web2py.gluon.html.H3.tag
5085
 
web2py.gluon.html.H4.tag
5086
 
web2py.gluon.html.H5.tag
5087
 
web2py.gluon.html.H6.tag
5088
 
web2py.gluon.html.HEAD.tag
5089
 
web2py.gluon.html.HR.tag
5090
 
web2py.gluon.html.HTML.tag
5091
 
web2py.gluon.html.I.tag
5092
 
web2py.gluon.html.IFRAME.tag
5093
 
web2py.gluon.html.IMG.tag
5094
 
web2py.gluon.html.INPUT.tag
5095
 
web2py.gluon.html.LABEL.tag
5096
 
web2py.gluon.html.LEGEND.tag
5097
 
web2py.gluon.html.LI.tag
5098
 
web2py.gluon.html.LINK.tag
5099
 
web2py.gluon.html.MENU.tag
5100
 
web2py.gluon.html.META.tag
5101
 
web2py.gluon.html.OBJECT.tag
5102
 
web2py.gluon.html.OL.tag
5103
 
web2py.gluon.html.OPTGROUP.tag
5104
 
web2py.gluon.html.OPTION.tag
5105
 
web2py.gluon.html.P.tag
5106
 
web2py.gluon.html.PRE.tag
5107
 
web2py.gluon.html.SCRIPT.tag
5108
 
web2py.gluon.html.SELECT.tag
5109
 
web2py.gluon.html.SPAN.tag
5110
 
web2py.gluon.html.STYLE.tag
5111
 
web2py.gluon.html.TABLE.tag
5112
 
web2py.gluon.html.TBODY.tag
5113
 
web2py.gluon.html.TD.tag
5114
 
web2py.gluon.html.TEXTAREA.tag
5115
 
web2py.gluon.html.TFOOT.tag
5116
 
web2py.gluon.html.TH.tag
5117
 
web2py.gluon.html.THEAD.tag
5118
 
web2py.gluon.html.TITLE.tag
5119
 
web2py.gluon.html.TR.tag
5120
 
web2py.gluon.html.TT.tag
5121
 
web2py.gluon.html.UL.tag
5122
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-313', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tbody'</tt> </tt>
5123
 
<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"> </tt>
5124
 
<a name="TBODY._fixup"></a><div id="TBODY._fixup-def"><a name="L1432"></a><tt class="py-lineno">1432</tt> <a class="py-toggle" href="#" id="TBODY._fixup-toggle" onclick="return toggle('TBODY._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TBODY-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5125
 
</div><div id="TBODY._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TBODY._fixup-expanded"><a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-314', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-315" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-315', 'TR', 'link-311');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-316" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-316', 'TR', 'link-311');">TR</a></tt><tt class="py-op">)</tt> </tt>
5126
 
</div></div><a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line"> </tt>
5127
 
<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"> </tt>
5128
 
<a name="TFOOT"></a><div id="TFOOT-def"><a name="L1436"></a><tt class="py-lineno">1436</tt> <a class="py-toggle" href="#" id="TFOOT-toggle" onclick="return toggle('TFOOT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TFOOT-class.html">TFOOT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5129
 
</div><div id="TFOOT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TFOOT-expanded"><a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"> </tt>
5130
 
<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">    <tt id="link-317" class="py-name"><a title="web2py.gluon.html.A.tag
5131
 
web2py.gluon.html.B.tag
5132
 
web2py.gluon.html.BEAUTIFY.tag
5133
 
web2py.gluon.html.BODY.tag
5134
 
web2py.gluon.html.BR.tag
5135
 
web2py.gluon.html.BUTTON.tag
5136
 
web2py.gluon.html.CAT.tag
5137
 
web2py.gluon.html.CENTER.tag
5138
 
web2py.gluon.html.COL.tag
5139
 
web2py.gluon.html.COLGROUP.tag
5140
 
web2py.gluon.html.DIV.tag
5141
 
web2py.gluon.html.EM.tag
5142
 
web2py.gluon.html.EMBED.tag
5143
 
web2py.gluon.html.FIELDSET.tag
5144
 
web2py.gluon.html.FORM.tag
5145
 
web2py.gluon.html.H1.tag
5146
 
web2py.gluon.html.H2.tag
5147
 
web2py.gluon.html.H3.tag
5148
 
web2py.gluon.html.H4.tag
5149
 
web2py.gluon.html.H5.tag
5150
 
web2py.gluon.html.H6.tag
5151
 
web2py.gluon.html.HEAD.tag
5152
 
web2py.gluon.html.HR.tag
5153
 
web2py.gluon.html.HTML.tag
5154
 
web2py.gluon.html.I.tag
5155
 
web2py.gluon.html.IFRAME.tag
5156
 
web2py.gluon.html.IMG.tag
5157
 
web2py.gluon.html.INPUT.tag
5158
 
web2py.gluon.html.LABEL.tag
5159
 
web2py.gluon.html.LEGEND.tag
5160
 
web2py.gluon.html.LI.tag
5161
 
web2py.gluon.html.LINK.tag
5162
 
web2py.gluon.html.MENU.tag
5163
 
web2py.gluon.html.META.tag
5164
 
web2py.gluon.html.OBJECT.tag
5165
 
web2py.gluon.html.OL.tag
5166
 
web2py.gluon.html.OPTGROUP.tag
5167
 
web2py.gluon.html.OPTION.tag
5168
 
web2py.gluon.html.P.tag
5169
 
web2py.gluon.html.PRE.tag
5170
 
web2py.gluon.html.SCRIPT.tag
5171
 
web2py.gluon.html.SELECT.tag
5172
 
web2py.gluon.html.SPAN.tag
5173
 
web2py.gluon.html.STYLE.tag
5174
 
web2py.gluon.html.TABLE.tag
5175
 
web2py.gluon.html.TBODY.tag
5176
 
web2py.gluon.html.TD.tag
5177
 
web2py.gluon.html.TEXTAREA.tag
5178
 
web2py.gluon.html.TFOOT.tag
5179
 
web2py.gluon.html.TH.tag
5180
 
web2py.gluon.html.THEAD.tag
5181
 
web2py.gluon.html.TITLE.tag
5182
 
web2py.gluon.html.TR.tag
5183
 
web2py.gluon.html.TT.tag
5184
 
web2py.gluon.html.UL.tag
5185
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-317', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tfoot'</tt> </tt>
5186
 
<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line"> </tt>
5187
 
<a name="TFOOT._fixup"></a><div id="TFOOT._fixup-def"><a name="L1440"></a><tt class="py-lineno">1440</tt> <a class="py-toggle" href="#" id="TFOOT._fixup-toggle" onclick="return toggle('TFOOT._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TFOOT-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5188
 
</div><div id="TFOOT._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TFOOT._fixup-expanded"><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-318', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-319" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-319', 'TR', 'link-311');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-320" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-320', 'TR', 'link-311');">TR</a></tt><tt class="py-op">)</tt> </tt>
5189
 
</div></div><a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"> </tt>
5190
 
<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"> </tt>
5191
 
<a name="COL"></a><div id="COL-def"><a name="L1444"></a><tt class="py-lineno">1444</tt> <a class="py-toggle" href="#" id="COL-toggle" onclick="return toggle('COL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.COL-class.html">COL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5192
 
</div><div id="COL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="COL-expanded"><a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"> </tt>
5193
 
<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">    <tt id="link-321" class="py-name"><a title="web2py.gluon.html.A.tag
5194
 
web2py.gluon.html.B.tag
5195
 
web2py.gluon.html.BEAUTIFY.tag
5196
 
web2py.gluon.html.BODY.tag
5197
 
web2py.gluon.html.BR.tag
5198
 
web2py.gluon.html.BUTTON.tag
5199
 
web2py.gluon.html.CAT.tag
5200
 
web2py.gluon.html.CENTER.tag
5201
 
web2py.gluon.html.COL.tag
5202
 
web2py.gluon.html.COLGROUP.tag
5203
 
web2py.gluon.html.DIV.tag
5204
 
web2py.gluon.html.EM.tag
5205
 
web2py.gluon.html.EMBED.tag
5206
 
web2py.gluon.html.FIELDSET.tag
5207
 
web2py.gluon.html.FORM.tag
5208
 
web2py.gluon.html.H1.tag
5209
 
web2py.gluon.html.H2.tag
5210
 
web2py.gluon.html.H3.tag
5211
 
web2py.gluon.html.H4.tag
5212
 
web2py.gluon.html.H5.tag
5213
 
web2py.gluon.html.H6.tag
5214
 
web2py.gluon.html.HEAD.tag
5215
 
web2py.gluon.html.HR.tag
5216
 
web2py.gluon.html.HTML.tag
5217
 
web2py.gluon.html.I.tag
5218
 
web2py.gluon.html.IFRAME.tag
5219
 
web2py.gluon.html.IMG.tag
5220
 
web2py.gluon.html.INPUT.tag
5221
 
web2py.gluon.html.LABEL.tag
5222
 
web2py.gluon.html.LEGEND.tag
5223
 
web2py.gluon.html.LI.tag
5224
 
web2py.gluon.html.LINK.tag
5225
 
web2py.gluon.html.MENU.tag
5226
 
web2py.gluon.html.META.tag
5227
 
web2py.gluon.html.OBJECT.tag
5228
 
web2py.gluon.html.OL.tag
5229
 
web2py.gluon.html.OPTGROUP.tag
5230
 
web2py.gluon.html.OPTION.tag
5231
 
web2py.gluon.html.P.tag
5232
 
web2py.gluon.html.PRE.tag
5233
 
web2py.gluon.html.SCRIPT.tag
5234
 
web2py.gluon.html.SELECT.tag
5235
 
web2py.gluon.html.SPAN.tag
5236
 
web2py.gluon.html.STYLE.tag
5237
 
web2py.gluon.html.TABLE.tag
5238
 
web2py.gluon.html.TBODY.tag
5239
 
web2py.gluon.html.TD.tag
5240
 
web2py.gluon.html.TEXTAREA.tag
5241
 
web2py.gluon.html.TFOOT.tag
5242
 
web2py.gluon.html.TH.tag
5243
 
web2py.gluon.html.THEAD.tag
5244
 
web2py.gluon.html.TITLE.tag
5245
 
web2py.gluon.html.TR.tag
5246
 
web2py.gluon.html.TT.tag
5247
 
web2py.gluon.html.UL.tag
5248
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-321', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'col'</tt> </tt>
5249
 
</div><a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"> </tt>
5250
 
<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"> </tt>
5251
 
<a name="COLGROUP"></a><div id="COLGROUP-def"><a name="L1449"></a><tt class="py-lineno">1449</tt> <a class="py-toggle" href="#" id="COLGROUP-toggle" onclick="return toggle('COLGROUP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.COLGROUP-class.html">COLGROUP</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5252
 
</div><div id="COLGROUP-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="COLGROUP-expanded"><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"> </tt>
5253
 
<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">    <tt id="link-322" class="py-name"><a title="web2py.gluon.html.A.tag
5254
 
web2py.gluon.html.B.tag
5255
 
web2py.gluon.html.BEAUTIFY.tag
5256
 
web2py.gluon.html.BODY.tag
5257
 
web2py.gluon.html.BR.tag
5258
 
web2py.gluon.html.BUTTON.tag
5259
 
web2py.gluon.html.CAT.tag
5260
 
web2py.gluon.html.CENTER.tag
5261
 
web2py.gluon.html.COL.tag
5262
 
web2py.gluon.html.COLGROUP.tag
5263
 
web2py.gluon.html.DIV.tag
5264
 
web2py.gluon.html.EM.tag
5265
 
web2py.gluon.html.EMBED.tag
5266
 
web2py.gluon.html.FIELDSET.tag
5267
 
web2py.gluon.html.FORM.tag
5268
 
web2py.gluon.html.H1.tag
5269
 
web2py.gluon.html.H2.tag
5270
 
web2py.gluon.html.H3.tag
5271
 
web2py.gluon.html.H4.tag
5272
 
web2py.gluon.html.H5.tag
5273
 
web2py.gluon.html.H6.tag
5274
 
web2py.gluon.html.HEAD.tag
5275
 
web2py.gluon.html.HR.tag
5276
 
web2py.gluon.html.HTML.tag
5277
 
web2py.gluon.html.I.tag
5278
 
web2py.gluon.html.IFRAME.tag
5279
 
web2py.gluon.html.IMG.tag
5280
 
web2py.gluon.html.INPUT.tag
5281
 
web2py.gluon.html.LABEL.tag
5282
 
web2py.gluon.html.LEGEND.tag
5283
 
web2py.gluon.html.LI.tag
5284
 
web2py.gluon.html.LINK.tag
5285
 
web2py.gluon.html.MENU.tag
5286
 
web2py.gluon.html.META.tag
5287
 
web2py.gluon.html.OBJECT.tag
5288
 
web2py.gluon.html.OL.tag
5289
 
web2py.gluon.html.OPTGROUP.tag
5290
 
web2py.gluon.html.OPTION.tag
5291
 
web2py.gluon.html.P.tag
5292
 
web2py.gluon.html.PRE.tag
5293
 
web2py.gluon.html.SCRIPT.tag
5294
 
web2py.gluon.html.SELECT.tag
5295
 
web2py.gluon.html.SPAN.tag
5296
 
web2py.gluon.html.STYLE.tag
5297
 
web2py.gluon.html.TABLE.tag
5298
 
web2py.gluon.html.TBODY.tag
5299
 
web2py.gluon.html.TD.tag
5300
 
web2py.gluon.html.TEXTAREA.tag
5301
 
web2py.gluon.html.TFOOT.tag
5302
 
web2py.gluon.html.TH.tag
5303
 
web2py.gluon.html.THEAD.tag
5304
 
web2py.gluon.html.TITLE.tag
5305
 
web2py.gluon.html.TR.tag
5306
 
web2py.gluon.html.TT.tag
5307
 
web2py.gluon.html.UL.tag
5308
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-322', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'colgroup'</tt> </tt>
5309
 
</div><a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"> </tt>
5310
 
<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"> </tt>
5311
 
<a name="TABLE"></a><div id="TABLE-def"><a name="L1454"></a><tt class="py-lineno">1454</tt> <a class="py-toggle" href="#" id="TABLE-toggle" onclick="return toggle('TABLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TABLE-class.html">TABLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5312
 
</div><div id="TABLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TABLE-expanded"><a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
5313
 
<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-docstring">    TABLE Component.</tt> </tt>
5314
 
<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5315
 
<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not TR/TBODY/THEAD/TFOOT-components</tt> </tt>
5316
 
<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-docstring">    they will be wrapped in a TR</tt> </tt>
5317
 
<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5318
 
<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
5319
 
<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
4852
<a name="TD"></a><div id="TD-def"><a name="L1424"></a><tt class="py-lineno">1424</tt> <a class="py-toggle" href="#" id="TD-toggle" onclick="return toggle('TD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TD-class.html">TD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4853
</div><div id="TD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TD-expanded"><a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"> </tt>
 
4854
<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">    <tt id="link-292" class="py-name"><a title="web2py.gluon.html.A.tag
 
4855
web2py.gluon.html.B.tag
 
4856
web2py.gluon.html.BEAUTIFY.tag
 
4857
web2py.gluon.html.BODY.tag
 
4858
web2py.gluon.html.BR.tag
 
4859
web2py.gluon.html.BUTTON.tag
 
4860
web2py.gluon.html.CAT.tag
 
4861
web2py.gluon.html.CENTER.tag
 
4862
web2py.gluon.html.COL.tag
 
4863
web2py.gluon.html.COLGROUP.tag
 
4864
web2py.gluon.html.DIV.tag
 
4865
web2py.gluon.html.EM.tag
 
4866
web2py.gluon.html.EMBED.tag
 
4867
web2py.gluon.html.FIELDSET.tag
 
4868
web2py.gluon.html.FORM.tag
 
4869
web2py.gluon.html.H1.tag
 
4870
web2py.gluon.html.H2.tag
 
4871
web2py.gluon.html.H3.tag
 
4872
web2py.gluon.html.H4.tag
 
4873
web2py.gluon.html.H5.tag
 
4874
web2py.gluon.html.H6.tag
 
4875
web2py.gluon.html.HEAD.tag
 
4876
web2py.gluon.html.HR.tag
 
4877
web2py.gluon.html.HTML.tag
 
4878
web2py.gluon.html.I.tag
 
4879
web2py.gluon.html.IFRAME.tag
 
4880
web2py.gluon.html.IMG.tag
 
4881
web2py.gluon.html.INPUT.tag
 
4882
web2py.gluon.html.LABEL.tag
 
4883
web2py.gluon.html.LEGEND.tag
 
4884
web2py.gluon.html.LI.tag
 
4885
web2py.gluon.html.LINK.tag
 
4886
web2py.gluon.html.MENU.tag
 
4887
web2py.gluon.html.META.tag
 
4888
web2py.gluon.html.OBJECT.tag
 
4889
web2py.gluon.html.OL.tag
 
4890
web2py.gluon.html.OPTGROUP.tag
 
4891
web2py.gluon.html.OPTION.tag
 
4892
web2py.gluon.html.P.tag
 
4893
web2py.gluon.html.PRE.tag
 
4894
web2py.gluon.html.SCRIPT.tag
 
4895
web2py.gluon.html.SELECT.tag
 
4896
web2py.gluon.html.SPAN.tag
 
4897
web2py.gluon.html.STYLE.tag
 
4898
web2py.gluon.html.TABLE.tag
 
4899
web2py.gluon.html.TBODY.tag
 
4900
web2py.gluon.html.TD.tag
 
4901
web2py.gluon.html.TEXTAREA.tag
 
4902
web2py.gluon.html.TFOOT.tag
 
4903
web2py.gluon.html.TH.tag
 
4904
web2py.gluon.html.THEAD.tag
 
4905
web2py.gluon.html.TITLE.tag
 
4906
web2py.gluon.html.TR.tag
 
4907
web2py.gluon.html.TT.tag
 
4908
web2py.gluon.html.UL.tag
 
4909
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-292', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'td'</tt> </tt>
 
4910
</div><a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
 
4911
<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"> </tt>
 
4912
<a name="TH"></a><div id="TH-def"><a name="L1429"></a><tt class="py-lineno">1429</tt> <a class="py-toggle" href="#" id="TH-toggle" onclick="return toggle('TH');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TH-class.html">TH</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4913
</div><div id="TH-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TH-expanded"><a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line"> </tt>
 
4914
<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">    <tt id="link-293" class="py-name"><a title="web2py.gluon.html.A.tag
 
4915
web2py.gluon.html.B.tag
 
4916
web2py.gluon.html.BEAUTIFY.tag
 
4917
web2py.gluon.html.BODY.tag
 
4918
web2py.gluon.html.BR.tag
 
4919
web2py.gluon.html.BUTTON.tag
 
4920
web2py.gluon.html.CAT.tag
 
4921
web2py.gluon.html.CENTER.tag
 
4922
web2py.gluon.html.COL.tag
 
4923
web2py.gluon.html.COLGROUP.tag
 
4924
web2py.gluon.html.DIV.tag
 
4925
web2py.gluon.html.EM.tag
 
4926
web2py.gluon.html.EMBED.tag
 
4927
web2py.gluon.html.FIELDSET.tag
 
4928
web2py.gluon.html.FORM.tag
 
4929
web2py.gluon.html.H1.tag
 
4930
web2py.gluon.html.H2.tag
 
4931
web2py.gluon.html.H3.tag
 
4932
web2py.gluon.html.H4.tag
 
4933
web2py.gluon.html.H5.tag
 
4934
web2py.gluon.html.H6.tag
 
4935
web2py.gluon.html.HEAD.tag
 
4936
web2py.gluon.html.HR.tag
 
4937
web2py.gluon.html.HTML.tag
 
4938
web2py.gluon.html.I.tag
 
4939
web2py.gluon.html.IFRAME.tag
 
4940
web2py.gluon.html.IMG.tag
 
4941
web2py.gluon.html.INPUT.tag
 
4942
web2py.gluon.html.LABEL.tag
 
4943
web2py.gluon.html.LEGEND.tag
 
4944
web2py.gluon.html.LI.tag
 
4945
web2py.gluon.html.LINK.tag
 
4946
web2py.gluon.html.MENU.tag
 
4947
web2py.gluon.html.META.tag
 
4948
web2py.gluon.html.OBJECT.tag
 
4949
web2py.gluon.html.OL.tag
 
4950
web2py.gluon.html.OPTGROUP.tag
 
4951
web2py.gluon.html.OPTION.tag
 
4952
web2py.gluon.html.P.tag
 
4953
web2py.gluon.html.PRE.tag
 
4954
web2py.gluon.html.SCRIPT.tag
 
4955
web2py.gluon.html.SELECT.tag
 
4956
web2py.gluon.html.SPAN.tag
 
4957
web2py.gluon.html.STYLE.tag
 
4958
web2py.gluon.html.TABLE.tag
 
4959
web2py.gluon.html.TBODY.tag
 
4960
web2py.gluon.html.TD.tag
 
4961
web2py.gluon.html.TEXTAREA.tag
 
4962
web2py.gluon.html.TFOOT.tag
 
4963
web2py.gluon.html.TH.tag
 
4964
web2py.gluon.html.THEAD.tag
 
4965
web2py.gluon.html.TITLE.tag
 
4966
web2py.gluon.html.TR.tag
 
4967
web2py.gluon.html.TT.tag
 
4968
web2py.gluon.html.UL.tag
 
4969
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-293', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'th'</tt> </tt>
 
4970
</div><a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
 
4971
<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line"> </tt>
 
4972
<a name="TR"></a><div id="TR-def"><a name="L1434"></a><tt class="py-lineno">1434</tt> <a class="py-toggle" href="#" id="TR-toggle" onclick="return toggle('TR');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TR-class.html">TR</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
4973
</div><div id="TR-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TR-expanded"><a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
4974
<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line"><tt class="py-docstring">    TR Component.</tt> </tt>
 
4975
<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4976
<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not TD/TH-components they will be wrapped in a TD</tt> </tt>
 
4977
<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
4978
<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
 
4979
<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
4980
<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"> </tt>
 
4981
<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">    <tt id="link-294" class="py-name"><a title="web2py.gluon.html.A.tag
 
4982
web2py.gluon.html.B.tag
 
4983
web2py.gluon.html.BEAUTIFY.tag
 
4984
web2py.gluon.html.BODY.tag
 
4985
web2py.gluon.html.BR.tag
 
4986
web2py.gluon.html.BUTTON.tag
 
4987
web2py.gluon.html.CAT.tag
 
4988
web2py.gluon.html.CENTER.tag
 
4989
web2py.gluon.html.COL.tag
 
4990
web2py.gluon.html.COLGROUP.tag
 
4991
web2py.gluon.html.DIV.tag
 
4992
web2py.gluon.html.EM.tag
 
4993
web2py.gluon.html.EMBED.tag
 
4994
web2py.gluon.html.FIELDSET.tag
 
4995
web2py.gluon.html.FORM.tag
 
4996
web2py.gluon.html.H1.tag
 
4997
web2py.gluon.html.H2.tag
 
4998
web2py.gluon.html.H3.tag
 
4999
web2py.gluon.html.H4.tag
 
5000
web2py.gluon.html.H5.tag
 
5001
web2py.gluon.html.H6.tag
 
5002
web2py.gluon.html.HEAD.tag
 
5003
web2py.gluon.html.HR.tag
 
5004
web2py.gluon.html.HTML.tag
 
5005
web2py.gluon.html.I.tag
 
5006
web2py.gluon.html.IFRAME.tag
 
5007
web2py.gluon.html.IMG.tag
 
5008
web2py.gluon.html.INPUT.tag
 
5009
web2py.gluon.html.LABEL.tag
 
5010
web2py.gluon.html.LEGEND.tag
 
5011
web2py.gluon.html.LI.tag
 
5012
web2py.gluon.html.LINK.tag
 
5013
web2py.gluon.html.MENU.tag
 
5014
web2py.gluon.html.META.tag
 
5015
web2py.gluon.html.OBJECT.tag
 
5016
web2py.gluon.html.OL.tag
 
5017
web2py.gluon.html.OPTGROUP.tag
 
5018
web2py.gluon.html.OPTION.tag
 
5019
web2py.gluon.html.P.tag
 
5020
web2py.gluon.html.PRE.tag
 
5021
web2py.gluon.html.SCRIPT.tag
 
5022
web2py.gluon.html.SELECT.tag
 
5023
web2py.gluon.html.SPAN.tag
 
5024
web2py.gluon.html.STYLE.tag
 
5025
web2py.gluon.html.TABLE.tag
 
5026
web2py.gluon.html.TBODY.tag
 
5027
web2py.gluon.html.TD.tag
 
5028
web2py.gluon.html.TEXTAREA.tag
 
5029
web2py.gluon.html.TFOOT.tag
 
5030
web2py.gluon.html.TH.tag
 
5031
web2py.gluon.html.THEAD.tag
 
5032
web2py.gluon.html.TITLE.tag
 
5033
web2py.gluon.html.TR.tag
 
5034
web2py.gluon.html.TT.tag
 
5035
web2py.gluon.html.UL.tag
 
5036
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-294', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tr'</tt> </tt>
 
5037
<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"> </tt>
 
5038
<a name="TR._fixup"></a><div id="TR._fixup-def"><a name="L1445"></a><tt class="py-lineno">1445</tt> <a class="py-toggle" href="#" id="TR._fixup-toggle" onclick="return toggle('TR._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TR-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5039
</div><div id="TR._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TR._fixup-expanded"><a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-295', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-296" class="py-name" targets="Class web2py.gluon.html.TD=web2py.gluon.html.TD-class.html"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-296', 'TD', 'link-296');">TD</a></tt><tt class="py-op">,</tt> <tt id="link-297" class="py-name" targets="Class web2py.gluon.html.TH=web2py.gluon.html.TH-class.html"><a title="web2py.gluon.html.TH" class="py-name" href="#" onclick="return doclink('link-297', 'TH', 'link-297');">TH</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-298" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-298', 'TD', 'link-296');">TD</a></tt><tt class="py-op">)</tt> </tt>
 
5040
</div></div><a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"> </tt>
 
5041
<a name="THEAD"></a><div id="THEAD-def"><a name="L1448"></a><tt class="py-lineno">1448</tt> <a class="py-toggle" href="#" id="THEAD-toggle" onclick="return toggle('THEAD');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.THEAD-class.html">THEAD</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5042
</div><div id="THEAD-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="THEAD-expanded"><a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"> </tt>
 
5043
<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">    <tt id="link-299" class="py-name"><a title="web2py.gluon.html.A.tag
 
5044
web2py.gluon.html.B.tag
 
5045
web2py.gluon.html.BEAUTIFY.tag
 
5046
web2py.gluon.html.BODY.tag
 
5047
web2py.gluon.html.BR.tag
 
5048
web2py.gluon.html.BUTTON.tag
 
5049
web2py.gluon.html.CAT.tag
 
5050
web2py.gluon.html.CENTER.tag
 
5051
web2py.gluon.html.COL.tag
 
5052
web2py.gluon.html.COLGROUP.tag
 
5053
web2py.gluon.html.DIV.tag
 
5054
web2py.gluon.html.EM.tag
 
5055
web2py.gluon.html.EMBED.tag
 
5056
web2py.gluon.html.FIELDSET.tag
 
5057
web2py.gluon.html.FORM.tag
 
5058
web2py.gluon.html.H1.tag
 
5059
web2py.gluon.html.H2.tag
 
5060
web2py.gluon.html.H3.tag
 
5061
web2py.gluon.html.H4.tag
 
5062
web2py.gluon.html.H5.tag
 
5063
web2py.gluon.html.H6.tag
 
5064
web2py.gluon.html.HEAD.tag
 
5065
web2py.gluon.html.HR.tag
 
5066
web2py.gluon.html.HTML.tag
 
5067
web2py.gluon.html.I.tag
 
5068
web2py.gluon.html.IFRAME.tag
 
5069
web2py.gluon.html.IMG.tag
 
5070
web2py.gluon.html.INPUT.tag
 
5071
web2py.gluon.html.LABEL.tag
 
5072
web2py.gluon.html.LEGEND.tag
 
5073
web2py.gluon.html.LI.tag
 
5074
web2py.gluon.html.LINK.tag
 
5075
web2py.gluon.html.MENU.tag
 
5076
web2py.gluon.html.META.tag
 
5077
web2py.gluon.html.OBJECT.tag
 
5078
web2py.gluon.html.OL.tag
 
5079
web2py.gluon.html.OPTGROUP.tag
 
5080
web2py.gluon.html.OPTION.tag
 
5081
web2py.gluon.html.P.tag
 
5082
web2py.gluon.html.PRE.tag
 
5083
web2py.gluon.html.SCRIPT.tag
 
5084
web2py.gluon.html.SELECT.tag
 
5085
web2py.gluon.html.SPAN.tag
 
5086
web2py.gluon.html.STYLE.tag
 
5087
web2py.gluon.html.TABLE.tag
 
5088
web2py.gluon.html.TBODY.tag
 
5089
web2py.gluon.html.TD.tag
 
5090
web2py.gluon.html.TEXTAREA.tag
 
5091
web2py.gluon.html.TFOOT.tag
 
5092
web2py.gluon.html.TH.tag
 
5093
web2py.gluon.html.THEAD.tag
 
5094
web2py.gluon.html.TITLE.tag
 
5095
web2py.gluon.html.TR.tag
 
5096
web2py.gluon.html.TT.tag
 
5097
web2py.gluon.html.UL.tag
 
5098
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-299', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'thead'</tt> </tt>
 
5099
<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"> </tt>
 
5100
<a name="THEAD._fixup"></a><div id="THEAD._fixup-def"><a name="L1452"></a><tt class="py-lineno">1452</tt> <a class="py-toggle" href="#" id="THEAD._fixup-toggle" onclick="return toggle('THEAD._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.THEAD-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5101
</div><div id="THEAD._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="THEAD._fixup-expanded"><a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-300', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-301" class="py-name" targets="Class web2py.gluon.html.TR=web2py.gluon.html.TR-class.html"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-301', 'TR', 'link-301');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-302" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-302', 'TR', 'link-301');">TR</a></tt><tt class="py-op">)</tt> </tt>
 
5102
</div></div><a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"> </tt>
 
5103
<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"> </tt>
 
5104
<a name="TBODY"></a><div id="TBODY-def"><a name="L1456"></a><tt class="py-lineno">1456</tt> <a class="py-toggle" href="#" id="TBODY-toggle" onclick="return toggle('TBODY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TBODY-class.html">TBODY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5105
</div><div id="TBODY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TBODY-expanded"><a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
 
5106
<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">    <tt id="link-303" class="py-name"><a title="web2py.gluon.html.A.tag
 
5107
web2py.gluon.html.B.tag
 
5108
web2py.gluon.html.BEAUTIFY.tag
 
5109
web2py.gluon.html.BODY.tag
 
5110
web2py.gluon.html.BR.tag
 
5111
web2py.gluon.html.BUTTON.tag
 
5112
web2py.gluon.html.CAT.tag
 
5113
web2py.gluon.html.CENTER.tag
 
5114
web2py.gluon.html.COL.tag
 
5115
web2py.gluon.html.COLGROUP.tag
 
5116
web2py.gluon.html.DIV.tag
 
5117
web2py.gluon.html.EM.tag
 
5118
web2py.gluon.html.EMBED.tag
 
5119
web2py.gluon.html.FIELDSET.tag
 
5120
web2py.gluon.html.FORM.tag
 
5121
web2py.gluon.html.H1.tag
 
5122
web2py.gluon.html.H2.tag
 
5123
web2py.gluon.html.H3.tag
 
5124
web2py.gluon.html.H4.tag
 
5125
web2py.gluon.html.H5.tag
 
5126
web2py.gluon.html.H6.tag
 
5127
web2py.gluon.html.HEAD.tag
 
5128
web2py.gluon.html.HR.tag
 
5129
web2py.gluon.html.HTML.tag
 
5130
web2py.gluon.html.I.tag
 
5131
web2py.gluon.html.IFRAME.tag
 
5132
web2py.gluon.html.IMG.tag
 
5133
web2py.gluon.html.INPUT.tag
 
5134
web2py.gluon.html.LABEL.tag
 
5135
web2py.gluon.html.LEGEND.tag
 
5136
web2py.gluon.html.LI.tag
 
5137
web2py.gluon.html.LINK.tag
 
5138
web2py.gluon.html.MENU.tag
 
5139
web2py.gluon.html.META.tag
 
5140
web2py.gluon.html.OBJECT.tag
 
5141
web2py.gluon.html.OL.tag
 
5142
web2py.gluon.html.OPTGROUP.tag
 
5143
web2py.gluon.html.OPTION.tag
 
5144
web2py.gluon.html.P.tag
 
5145
web2py.gluon.html.PRE.tag
 
5146
web2py.gluon.html.SCRIPT.tag
 
5147
web2py.gluon.html.SELECT.tag
 
5148
web2py.gluon.html.SPAN.tag
 
5149
web2py.gluon.html.STYLE.tag
 
5150
web2py.gluon.html.TABLE.tag
 
5151
web2py.gluon.html.TBODY.tag
 
5152
web2py.gluon.html.TD.tag
 
5153
web2py.gluon.html.TEXTAREA.tag
 
5154
web2py.gluon.html.TFOOT.tag
 
5155
web2py.gluon.html.TH.tag
 
5156
web2py.gluon.html.THEAD.tag
 
5157
web2py.gluon.html.TITLE.tag
 
5158
web2py.gluon.html.TR.tag
 
5159
web2py.gluon.html.TT.tag
 
5160
web2py.gluon.html.UL.tag
 
5161
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-303', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tbody'</tt> </tt>
 
5162
<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"> </tt>
 
5163
<a name="TBODY._fixup"></a><div id="TBODY._fixup-def"><a name="L1460"></a><tt class="py-lineno">1460</tt> <a class="py-toggle" href="#" id="TBODY._fixup-toggle" onclick="return toggle('TBODY._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TBODY-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5164
</div><div id="TBODY._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TBODY._fixup-expanded"><a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-304', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-305" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-305', 'TR', 'link-301');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-306" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-306', 'TR', 'link-301');">TR</a></tt><tt class="py-op">)</tt> </tt>
 
5165
</div></div><a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"> </tt>
5320
5166
<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
5321
 
<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">    <tt id="link-323" class="py-name"><a title="web2py.gluon.html.A.tag
5322
 
web2py.gluon.html.B.tag
5323
 
web2py.gluon.html.BEAUTIFY.tag
5324
 
web2py.gluon.html.BODY.tag
5325
 
web2py.gluon.html.BR.tag
5326
 
web2py.gluon.html.BUTTON.tag
5327
 
web2py.gluon.html.CAT.tag
5328
 
web2py.gluon.html.CENTER.tag
5329
 
web2py.gluon.html.COL.tag
5330
 
web2py.gluon.html.COLGROUP.tag
5331
 
web2py.gluon.html.DIV.tag
5332
 
web2py.gluon.html.EM.tag
5333
 
web2py.gluon.html.EMBED.tag
5334
 
web2py.gluon.html.FIELDSET.tag
5335
 
web2py.gluon.html.FORM.tag
5336
 
web2py.gluon.html.H1.tag
5337
 
web2py.gluon.html.H2.tag
5338
 
web2py.gluon.html.H3.tag
5339
 
web2py.gluon.html.H4.tag
5340
 
web2py.gluon.html.H5.tag
5341
 
web2py.gluon.html.H6.tag
5342
 
web2py.gluon.html.HEAD.tag
5343
 
web2py.gluon.html.HR.tag
5344
 
web2py.gluon.html.HTML.tag
5345
 
web2py.gluon.html.I.tag
5346
 
web2py.gluon.html.IFRAME.tag
5347
 
web2py.gluon.html.IMG.tag
5348
 
web2py.gluon.html.INPUT.tag
5349
 
web2py.gluon.html.LABEL.tag
5350
 
web2py.gluon.html.LEGEND.tag
5351
 
web2py.gluon.html.LI.tag
5352
 
web2py.gluon.html.LINK.tag
5353
 
web2py.gluon.html.MENU.tag
5354
 
web2py.gluon.html.META.tag
5355
 
web2py.gluon.html.OBJECT.tag
5356
 
web2py.gluon.html.OL.tag
5357
 
web2py.gluon.html.OPTGROUP.tag
5358
 
web2py.gluon.html.OPTION.tag
5359
 
web2py.gluon.html.P.tag
5360
 
web2py.gluon.html.PRE.tag
5361
 
web2py.gluon.html.SCRIPT.tag
5362
 
web2py.gluon.html.SELECT.tag
5363
 
web2py.gluon.html.SPAN.tag
5364
 
web2py.gluon.html.STYLE.tag
5365
 
web2py.gluon.html.TABLE.tag
5366
 
web2py.gluon.html.TBODY.tag
5367
 
web2py.gluon.html.TD.tag
5368
 
web2py.gluon.html.TEXTAREA.tag
5369
 
web2py.gluon.html.TFOOT.tag
5370
 
web2py.gluon.html.TH.tag
5371
 
web2py.gluon.html.THEAD.tag
5372
 
web2py.gluon.html.TITLE.tag
5373
 
web2py.gluon.html.TR.tag
5374
 
web2py.gluon.html.TT.tag
5375
 
web2py.gluon.html.UL.tag
5376
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-323', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'table'</tt> </tt>
5377
 
<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
5378
 
<a name="TABLE._fixup"></a><div id="TABLE._fixup-def"><a name="L1466"></a><tt class="py-lineno">1466</tt> <a class="py-toggle" href="#" id="TABLE._fixup-toggle" onclick="return toggle('TABLE._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TABLE-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5379
 
</div><div id="TABLE._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TABLE._fixup-expanded"><a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-324', '_wrap_components', 'link-298');">_wrap_components</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-325" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-325', 'TR', 'link-311');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-326" class="py-name" targets="Class web2py.gluon.html.TBODY=web2py.gluon.html.TBODY-class.html"><a title="web2py.gluon.html.TBODY" class="py-name" href="#" onclick="return doclink('link-326', 'TBODY', 'link-326');">TBODY</a></tt><tt class="py-op">,</tt> <tt id="link-327" class="py-name" targets="Class web2py.gluon.html.THEAD=web2py.gluon.html.THEAD-class.html"><a title="web2py.gluon.html.THEAD" class="py-name" href="#" onclick="return doclink('link-327', 'THEAD', 'link-327');">THEAD</a></tt><tt class="py-op">,</tt> <tt id="link-328" class="py-name" targets="Class web2py.gluon.html.TFOOT=web2py.gluon.html.TFOOT-class.html"><a title="web2py.gluon.html.TFOOT" class="py-name" href="#" onclick="return doclink('link-328', 'TFOOT', 'link-328');">TFOOT</a></tt><tt class="py-op">,</tt> <tt id="link-329" class="py-name" targets="Class web2py.gluon.html.COL=web2py.gluon.html.COL-class.html"><a title="web2py.gluon.html.COL" class="py-name" href="#" onclick="return doclink('link-329', 'COL', 'link-329');">COL</a></tt><tt class="py-op">,</tt> <tt id="link-330" class="py-name" targets="Class web2py.gluon.html.COLGROUP=web2py.gluon.html.COLGROUP-class.html"><a title="web2py.gluon.html.COLGROUP" class="py-name" href="#" onclick="return doclink('link-330', 'COLGROUP', 'link-330');">COLGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-331" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-331', 'TR', 'link-311');">TR</a></tt><tt class="py-op">)</tt> </tt>
5380
 
</div></div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
5381
 
<a name="I"></a><div id="I-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="I-toggle" onclick="return toggle('I');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.I-class.html">I</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5382
 
</div><div id="I-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="I-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"> </tt>
5383
 
<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">    <tt id="link-332" class="py-name"><a title="web2py.gluon.html.A.tag
5384
 
web2py.gluon.html.B.tag
5385
 
web2py.gluon.html.BEAUTIFY.tag
5386
 
web2py.gluon.html.BODY.tag
5387
 
web2py.gluon.html.BR.tag
5388
 
web2py.gluon.html.BUTTON.tag
5389
 
web2py.gluon.html.CAT.tag
5390
 
web2py.gluon.html.CENTER.tag
5391
 
web2py.gluon.html.COL.tag
5392
 
web2py.gluon.html.COLGROUP.tag
5393
 
web2py.gluon.html.DIV.tag
5394
 
web2py.gluon.html.EM.tag
5395
 
web2py.gluon.html.EMBED.tag
5396
 
web2py.gluon.html.FIELDSET.tag
5397
 
web2py.gluon.html.FORM.tag
5398
 
web2py.gluon.html.H1.tag
5399
 
web2py.gluon.html.H2.tag
5400
 
web2py.gluon.html.H3.tag
5401
 
web2py.gluon.html.H4.tag
5402
 
web2py.gluon.html.H5.tag
5403
 
web2py.gluon.html.H6.tag
5404
 
web2py.gluon.html.HEAD.tag
5405
 
web2py.gluon.html.HR.tag
5406
 
web2py.gluon.html.HTML.tag
5407
 
web2py.gluon.html.I.tag
5408
 
web2py.gluon.html.IFRAME.tag
5409
 
web2py.gluon.html.IMG.tag
5410
 
web2py.gluon.html.INPUT.tag
5411
 
web2py.gluon.html.LABEL.tag
5412
 
web2py.gluon.html.LEGEND.tag
5413
 
web2py.gluon.html.LI.tag
5414
 
web2py.gluon.html.LINK.tag
5415
 
web2py.gluon.html.MENU.tag
5416
 
web2py.gluon.html.META.tag
5417
 
web2py.gluon.html.OBJECT.tag
5418
 
web2py.gluon.html.OL.tag
5419
 
web2py.gluon.html.OPTGROUP.tag
5420
 
web2py.gluon.html.OPTION.tag
5421
 
web2py.gluon.html.P.tag
5422
 
web2py.gluon.html.PRE.tag
5423
 
web2py.gluon.html.SCRIPT.tag
5424
 
web2py.gluon.html.SELECT.tag
5425
 
web2py.gluon.html.SPAN.tag
5426
 
web2py.gluon.html.STYLE.tag
5427
 
web2py.gluon.html.TABLE.tag
5428
 
web2py.gluon.html.TBODY.tag
5429
 
web2py.gluon.html.TD.tag
5430
 
web2py.gluon.html.TEXTAREA.tag
5431
 
web2py.gluon.html.TFOOT.tag
5432
 
web2py.gluon.html.TH.tag
5433
 
web2py.gluon.html.THEAD.tag
5434
 
web2py.gluon.html.TITLE.tag
5435
 
web2py.gluon.html.TR.tag
5436
 
web2py.gluon.html.TT.tag
5437
 
web2py.gluon.html.UL.tag
5438
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-332', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'i'</tt> </tt>
5439
 
</div><a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"> </tt>
5440
 
<a name="IFRAME"></a><div id="IFRAME-def"><a name="L1473"></a><tt class="py-lineno">1473</tt> <a class="py-toggle" href="#" id="IFRAME-toggle" onclick="return toggle('IFRAME');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.IFRAME-class.html">IFRAME</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5441
 
</div><div id="IFRAME-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="IFRAME-expanded"><a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"> </tt>
5442
 
<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">    <tt id="link-333" class="py-name"><a title="web2py.gluon.html.A.tag
5443
 
web2py.gluon.html.B.tag
5444
 
web2py.gluon.html.BEAUTIFY.tag
5445
 
web2py.gluon.html.BODY.tag
5446
 
web2py.gluon.html.BR.tag
5447
 
web2py.gluon.html.BUTTON.tag
5448
 
web2py.gluon.html.CAT.tag
5449
 
web2py.gluon.html.CENTER.tag
5450
 
web2py.gluon.html.COL.tag
5451
 
web2py.gluon.html.COLGROUP.tag
5452
 
web2py.gluon.html.DIV.tag
5453
 
web2py.gluon.html.EM.tag
5454
 
web2py.gluon.html.EMBED.tag
5455
 
web2py.gluon.html.FIELDSET.tag
5456
 
web2py.gluon.html.FORM.tag
5457
 
web2py.gluon.html.H1.tag
5458
 
web2py.gluon.html.H2.tag
5459
 
web2py.gluon.html.H3.tag
5460
 
web2py.gluon.html.H4.tag
5461
 
web2py.gluon.html.H5.tag
5462
 
web2py.gluon.html.H6.tag
5463
 
web2py.gluon.html.HEAD.tag
5464
 
web2py.gluon.html.HR.tag
5465
 
web2py.gluon.html.HTML.tag
5466
 
web2py.gluon.html.I.tag
5467
 
web2py.gluon.html.IFRAME.tag
5468
 
web2py.gluon.html.IMG.tag
5469
 
web2py.gluon.html.INPUT.tag
5470
 
web2py.gluon.html.LABEL.tag
5471
 
web2py.gluon.html.LEGEND.tag
5472
 
web2py.gluon.html.LI.tag
5473
 
web2py.gluon.html.LINK.tag
5474
 
web2py.gluon.html.MENU.tag
5475
 
web2py.gluon.html.META.tag
5476
 
web2py.gluon.html.OBJECT.tag
5477
 
web2py.gluon.html.OL.tag
5478
 
web2py.gluon.html.OPTGROUP.tag
5479
 
web2py.gluon.html.OPTION.tag
5480
 
web2py.gluon.html.P.tag
5481
 
web2py.gluon.html.PRE.tag
5482
 
web2py.gluon.html.SCRIPT.tag
5483
 
web2py.gluon.html.SELECT.tag
5484
 
web2py.gluon.html.SPAN.tag
5485
 
web2py.gluon.html.STYLE.tag
5486
 
web2py.gluon.html.TABLE.tag
5487
 
web2py.gluon.html.TBODY.tag
5488
 
web2py.gluon.html.TD.tag
5489
 
web2py.gluon.html.TEXTAREA.tag
5490
 
web2py.gluon.html.TFOOT.tag
5491
 
web2py.gluon.html.TH.tag
5492
 
web2py.gluon.html.THEAD.tag
5493
 
web2py.gluon.html.TITLE.tag
5494
 
web2py.gluon.html.TR.tag
5495
 
web2py.gluon.html.TT.tag
5496
 
web2py.gluon.html.UL.tag
5497
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-333', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'iframe'</tt> </tt>
5498
 
</div><a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"> </tt>
5499
 
<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"> </tt>
5500
 
<a name="INPUT"></a><div id="INPUT-def"><a name="L1478"></a><tt class="py-lineno">1478</tt> <a class="py-toggle" href="#" id="INPUT-toggle" onclick="return toggle('INPUT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html">INPUT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5501
 
</div><div id="INPUT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="INPUT-expanded"><a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"> </tt>
5502
 
<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
5503
 
<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"><tt class="py-docstring">        INPUT Component</tt> </tt>
5504
 
<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5505
 
<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line"><tt class="py-docstring">        examples::</tt> </tt>
5506
 
<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5507
 
<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='text', _name='name', value='Max').xml()</tt> </tt>
5508
 
<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input name=\"name\" type=\"text\" value=\"Max\" /&gt;'</tt> </tt>
5509
 
<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5510
 
<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='checkbox', _name='checkbox', value='on').xml()</tt> </tt>
5511
 
<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input checked=\"checked\" name=\"checkbox\" type=\"checkbox\" value=\"on\" /&gt;'</tt> </tt>
5512
 
<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5513
 
<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='radio', _name='radio', _value='yes', value='yes').xml()</tt> </tt>
5514
 
<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input checked=\"checked\" name=\"radio\" type=\"radio\" value=\"yes\" /&gt;'</tt> </tt>
5515
 
<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5516
 
<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='radio', _name='radio', _value='no', value='yes').xml()</tt> </tt>
5517
 
<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input name=\"radio\" type=\"radio\" value=\"no\" /&gt;'</tt> </tt>
5518
 
<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5519
 
<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"><tt class="py-docstring">        the input helper takes two special attributes value= and requires=.</tt> </tt>
5520
 
<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5521
 
<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-docstring">        :param value: used to pass the initial value for the input field.</tt> </tt>
5522
 
<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-docstring">            value differs from _value because it works for checkboxes, radio,</tt> </tt>
5523
 
<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-docstring">            textarea and select/option too.</tt> </tt>
5524
 
<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5525
 
<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-docstring">            - for a checkbox value should be '' or 'on'.</tt> </tt>
5526
 
<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-docstring">            - for a radio or select/option value should be the _value</tt> </tt>
5527
 
<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-docstring">                of the checked/selected item.</tt> </tt>
5528
 
<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5529
 
<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-docstring">        :param requires: should be None, or a validator or a list of validators</tt> </tt>
5530
 
<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-docstring">            for the value of the field.</tt> </tt>
5531
 
<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
5532
 
<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"> </tt>
5533
 
<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">    <tt id="link-334" class="py-name"><a title="web2py.gluon.html.A.tag
5534
 
web2py.gluon.html.B.tag
5535
 
web2py.gluon.html.BEAUTIFY.tag
5536
 
web2py.gluon.html.BODY.tag
5537
 
web2py.gluon.html.BR.tag
5538
 
web2py.gluon.html.BUTTON.tag
5539
 
web2py.gluon.html.CAT.tag
5540
 
web2py.gluon.html.CENTER.tag
5541
 
web2py.gluon.html.COL.tag
5542
 
web2py.gluon.html.COLGROUP.tag
5543
 
web2py.gluon.html.DIV.tag
5544
 
web2py.gluon.html.EM.tag
5545
 
web2py.gluon.html.EMBED.tag
5546
 
web2py.gluon.html.FIELDSET.tag
5547
 
web2py.gluon.html.FORM.tag
5548
 
web2py.gluon.html.H1.tag
5549
 
web2py.gluon.html.H2.tag
5550
 
web2py.gluon.html.H3.tag
5551
 
web2py.gluon.html.H4.tag
5552
 
web2py.gluon.html.H5.tag
5553
 
web2py.gluon.html.H6.tag
5554
 
web2py.gluon.html.HEAD.tag
5555
 
web2py.gluon.html.HR.tag
5556
 
web2py.gluon.html.HTML.tag
5557
 
web2py.gluon.html.I.tag
5558
 
web2py.gluon.html.IFRAME.tag
5559
 
web2py.gluon.html.IMG.tag
5560
 
web2py.gluon.html.INPUT.tag
5561
 
web2py.gluon.html.LABEL.tag
5562
 
web2py.gluon.html.LEGEND.tag
5563
 
web2py.gluon.html.LI.tag
5564
 
web2py.gluon.html.LINK.tag
5565
 
web2py.gluon.html.MENU.tag
5566
 
web2py.gluon.html.META.tag
5567
 
web2py.gluon.html.OBJECT.tag
5568
 
web2py.gluon.html.OL.tag
5569
 
web2py.gluon.html.OPTGROUP.tag
5570
 
web2py.gluon.html.OPTION.tag
5571
 
web2py.gluon.html.P.tag
5572
 
web2py.gluon.html.PRE.tag
5573
 
web2py.gluon.html.SCRIPT.tag
5574
 
web2py.gluon.html.SELECT.tag
5575
 
web2py.gluon.html.SPAN.tag
5576
 
web2py.gluon.html.STYLE.tag
5577
 
web2py.gluon.html.TABLE.tag
5578
 
web2py.gluon.html.TBODY.tag
5579
 
web2py.gluon.html.TD.tag
5580
 
web2py.gluon.html.TEXTAREA.tag
5581
 
web2py.gluon.html.TFOOT.tag
5582
 
web2py.gluon.html.TH.tag
5583
 
web2py.gluon.html.THEAD.tag
5584
 
web2py.gluon.html.TITLE.tag
5585
 
web2py.gluon.html.TR.tag
5586
 
web2py.gluon.html.TT.tag
5587
 
web2py.gluon.html.UL.tag
5588
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-334', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'input/'</tt> </tt>
5589
 
<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"> </tt>
5590
 
<a name="INPUT._validate"></a><div id="INPUT._validate-def"><a name="L1513"></a><tt class="py-lineno">1513</tt> <a class="py-toggle" href="#" id="INPUT._validate-toggle" onclick="return toggle('INPUT._validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#_validate">_validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5591
 
</div><div id="INPUT._validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT._validate-expanded"><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
5592
 
<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-comment"># # this only changes value, not _value</tt> </tt>
5593
 
<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
5594
 
<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt id="link-335" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-335', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_name'</tt><tt class="py-op">]</tt> </tt>
5595
 
<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-336" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-336', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt id="link-337" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-337', 'name', 'link-74');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
5596
 
<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
5597
 
<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt id="link-338" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-338', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-339" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-339', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
5598
 
<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
5599
 
<a name="L1522"></a><tt class="py-lineno">1522</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-string">'_type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'checkbox'</tt><tt class="py-op">:</tt> </tt>
5600
 
<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
5601
 
<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-340', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt id="link-341" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-341', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
5602
 
<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
5603
 
<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5604
 
<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-name">False</tt> </tt>
5605
 
<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-342', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt id="link-343" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-343', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
5606
 
<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5607
 
<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt> </tt>
5608
 
<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5609
 
<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">value</tt> </tt>
5610
 
<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt id="link-344" class="py-name" targets="Method web2py.gluon.tools.Auth.requires()=web2py.gluon.tools.Auth-class.html#requires"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-344', 'requires', 'link-344');">requires</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'requires'</tt><tt class="py-op">]</tt> </tt>
5611
 
<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-345" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-345', 'requires', 'link-344');">requires</a></tt><tt class="py-op">:</tt> </tt>
5612
 
<a name="L1535"></a><tt class="py-lineno">1535</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 id="link-346" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-346', 'requires', 'link-344');">requires</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5613
 
<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">                <tt id="link-347" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-347', 'requires', 'link-344');">requires</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-348" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-348', 'requires', 'link-344');">requires</a></tt><tt class="py-op">]</tt> </tt>
5614
 
<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">validator</tt> <tt class="py-keyword">in</tt> <tt id="link-349" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-349', 'requires', 'link-344');">requires</a></tt><tt class="py-op">:</tt> </tt>
5615
 
<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">errors</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">validator</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
5616
 
<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">errors</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
5617
 
<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-350" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-350', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
5618
 
<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">[</tt><tt id="link-351" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-351', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">errors</tt> </tt>
5619
 
<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
5620
 
<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-352" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-352', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
5621
 
<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-353" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-353', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
5622
 
<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
5623
 
<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
5624
 
</div><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"> </tt>
5625
 
<a name="INPUT._postprocessing"></a><div id="INPUT._postprocessing-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="INPUT._postprocessing-toggle" onclick="return toggle('INPUT._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5626
 
</div><div id="INPUT._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT._postprocessing-expanded"><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_type'</tt><tt class="py-op">]</tt> </tt>
5627
 
<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">t</tt><tt class="py-op">:</tt> </tt>
5628
 
<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">            <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'text'</tt> </tt>
5629
 
<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name" targets="Method web2py.gluon.dal.Expression.lower()=web2py.gluon.dal.Expression-class.html#lower"><a title="web2py.gluon.dal.Expression.lower" class="py-name" href="#" onclick="return doclink('link-354', 'lower', 'link-354');">lower</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
5630
 
<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
5631
 
<a name="L1554"></a><tt class="py-lineno">1554</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-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
5632
 
<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">            <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
5633
 
<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5634
 
<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
5635
 
<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'checkbox'</tt><tt class="py-op">:</tt> </tt>
5636
 
<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">_value</tt><tt class="py-op">:</tt> </tt>
5637
 
<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'on'</tt> </tt>
5638
 
<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
5639
 
<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
5640
 
<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
5641
 
<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">_value</tt><tt class="py-op">]</tt> </tt>
5642
 
<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5643
 
<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'|'</tt><tt class="py-op">)</tt> </tt>
5644
 
<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">None</tt> </tt>
5645
 
<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'radio'</tt><tt class="py-op">:</tt> </tt>
5646
 
<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5647
 
<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'checked'</tt> </tt>
5648
 
<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5649
 
<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
5650
 
<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'text'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'hidden'</tt><tt class="py-op">:</tt> </tt>
5651
 
<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
5652
 
<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
5653
 
<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5654
 
<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_value</tt> </tt>
5655
 
</div><a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"> </tt>
5656
 
<a name="INPUT.xml"></a><div id="INPUT.xml-def"><a name="L1579"></a><tt class="py-lineno">1579</tt> <a class="py-toggle" href="#" id="INPUT.xml-toggle" onclick="return toggle('INPUT.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5657
 
</div><div id="INPUT.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT.xml-expanded"><a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt id="link-355" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-355', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-356', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_name'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
5658
 
<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-357" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-357', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'errors'</tt><tt class="py-op">)</tt> \ </tt>
5659
 
<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-358', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt id="link-359" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-359', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> \ </tt>
5660
 
<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'hideerror'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
5661
 
<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-360" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
5662
 
web2py.gluon.dal.NoSQLAdapter.DIV
5663
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-360', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-361" class="py-name"><a title="web2py.gluon.dal.Rows.xml
5664
 
web2py.gluon.html.A.xml
5665
 
web2py.gluon.html.CODE.xml
5666
 
web2py.gluon.html.DIV.xml
5667
 
web2py.gluon.html.FORM.xml
5668
 
web2py.gluon.html.HTML.xml
5669
 
web2py.gluon.html.INPUT.xml
5670
 
web2py.gluon.html.MARKMIN.xml
5671
 
web2py.gluon.html.MENU.xml
5672
 
web2py.gluon.html.P.xml
5673
 
web2py.gluon.html.SCRIPT.xml
5674
 
web2py.gluon.html.STYLE.xml
5675
 
web2py.gluon.html.XHTML.xml
5676
 
web2py.gluon.html.XML.xml
5677
 
web2py.gluon.html.XmlComponent.xml
5678
 
web2py.gluon.languages.lazyT.xml
5679
 
web2py.gluon.serializers.xml
5680
 
web2py.gluon.tools.Recaptcha.xml
5681
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-361', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-362" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
5682
 
web2py.gluon.dal.NoSQLAdapter.DIV
5683
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-362', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">[</tt><tt id="link-363" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-363', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-string">'error'</tt><tt class="py-op">,</tt> </tt>
5684
 
<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                <tt class="py-name">errors</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">_id</tt><tt class="py-op">=</tt><tt class="py-string">'%s__error'</tt> <tt class="py-op">%</tt> <tt id="link-364" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-364', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-365" class="py-name"><a title="web2py.gluon.dal.Rows.xml
5685
 
web2py.gluon.html.A.xml
5686
 
web2py.gluon.html.CODE.xml
5687
 
web2py.gluon.html.DIV.xml
5688
 
web2py.gluon.html.FORM.xml
5689
 
web2py.gluon.html.HTML.xml
5690
 
web2py.gluon.html.INPUT.xml
5691
 
web2py.gluon.html.MARKMIN.xml
5692
 
web2py.gluon.html.MENU.xml
5693
 
web2py.gluon.html.P.xml
5694
 
web2py.gluon.html.SCRIPT.xml
5695
 
web2py.gluon.html.STYLE.xml
5696
 
web2py.gluon.html.XHTML.xml
5697
 
web2py.gluon.html.XML.xml
5698
 
web2py.gluon.html.XmlComponent.xml
5699
 
web2py.gluon.languages.lazyT.xml
5700
 
web2py.gluon.serializers.xml
5701
 
web2py.gluon.tools.Recaptcha.xml
5702
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-365', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
5703
 
<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5704
 
<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-366" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
5705
 
web2py.gluon.dal.NoSQLAdapter.DIV
5706
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-366', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-367" class="py-name"><a title="web2py.gluon.dal.Rows.xml
5707
 
web2py.gluon.html.A.xml
5708
 
web2py.gluon.html.CODE.xml
5709
 
web2py.gluon.html.DIV.xml
5710
 
web2py.gluon.html.FORM.xml
5711
 
web2py.gluon.html.HTML.xml
5712
 
web2py.gluon.html.INPUT.xml
5713
 
web2py.gluon.html.MARKMIN.xml
5714
 
web2py.gluon.html.MENU.xml
5715
 
web2py.gluon.html.P.xml
5716
 
web2py.gluon.html.SCRIPT.xml
5717
 
web2py.gluon.html.STYLE.xml
5718
 
web2py.gluon.html.XHTML.xml
5719
 
web2py.gluon.html.XML.xml
5720
 
web2py.gluon.html.XmlComponent.xml
5721
 
web2py.gluon.languages.lazyT.xml
5722
 
web2py.gluon.serializers.xml
5723
 
web2py.gluon.tools.Recaptcha.xml
5724
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-367', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
5725
 
</div></div><a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"> </tt>
5726
 
<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"> </tt>
5727
 
<a name="TEXTAREA"></a><div id="TEXTAREA-def"><a name="L1590"></a><tt class="py-lineno">1590</tt> <a class="py-toggle" href="#" id="TEXTAREA-toggle" onclick="return toggle('TEXTAREA');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TEXTAREA-class.html">TEXTAREA</a><tt class="py-op">(</tt><tt class="py-base-class">INPUT</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5728
 
</div><div id="TEXTAREA-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TEXTAREA-expanded"><a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"> </tt>
5729
 
<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
5730
 
<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
5731
 
<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5732
 
<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-docstring">        TEXTAREA(_name='sometext', value='blah '*100, requires=IS_NOT_EMPTY())</tt> </tt>
5733
 
<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
5734
 
<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"><tt class="py-docstring">    'blah blah blah ...' will be the content of the textarea field.</tt> </tt>
5735
 
<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
5736
 
<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"> </tt>
5737
 
<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">    <tt id="link-368" class="py-name"><a title="web2py.gluon.html.A.tag
5738
 
web2py.gluon.html.B.tag
5739
 
web2py.gluon.html.BEAUTIFY.tag
5740
 
web2py.gluon.html.BODY.tag
5741
 
web2py.gluon.html.BR.tag
5742
 
web2py.gluon.html.BUTTON.tag
5743
 
web2py.gluon.html.CAT.tag
5744
 
web2py.gluon.html.CENTER.tag
5745
 
web2py.gluon.html.COL.tag
5746
 
web2py.gluon.html.COLGROUP.tag
5747
 
web2py.gluon.html.DIV.tag
5748
 
web2py.gluon.html.EM.tag
5749
 
web2py.gluon.html.EMBED.tag
5750
 
web2py.gluon.html.FIELDSET.tag
5751
 
web2py.gluon.html.FORM.tag
5752
 
web2py.gluon.html.H1.tag
5753
 
web2py.gluon.html.H2.tag
5754
 
web2py.gluon.html.H3.tag
5755
 
web2py.gluon.html.H4.tag
5756
 
web2py.gluon.html.H5.tag
5757
 
web2py.gluon.html.H6.tag
5758
 
web2py.gluon.html.HEAD.tag
5759
 
web2py.gluon.html.HR.tag
5760
 
web2py.gluon.html.HTML.tag
5761
 
web2py.gluon.html.I.tag
5762
 
web2py.gluon.html.IFRAME.tag
5763
 
web2py.gluon.html.IMG.tag
5764
 
web2py.gluon.html.INPUT.tag
5765
 
web2py.gluon.html.LABEL.tag
5766
 
web2py.gluon.html.LEGEND.tag
5767
 
web2py.gluon.html.LI.tag
5768
 
web2py.gluon.html.LINK.tag
5769
 
web2py.gluon.html.MENU.tag
5770
 
web2py.gluon.html.META.tag
5771
 
web2py.gluon.html.OBJECT.tag
5772
 
web2py.gluon.html.OL.tag
5773
 
web2py.gluon.html.OPTGROUP.tag
5774
 
web2py.gluon.html.OPTION.tag
5775
 
web2py.gluon.html.P.tag
5776
 
web2py.gluon.html.PRE.tag
5777
 
web2py.gluon.html.SCRIPT.tag
5778
 
web2py.gluon.html.SELECT.tag
5779
 
web2py.gluon.html.SPAN.tag
5780
 
web2py.gluon.html.STYLE.tag
5781
 
web2py.gluon.html.TABLE.tag
5782
 
web2py.gluon.html.TBODY.tag
5783
 
web2py.gluon.html.TD.tag
5784
 
web2py.gluon.html.TEXTAREA.tag
5785
 
web2py.gluon.html.TFOOT.tag
5786
 
web2py.gluon.html.TH.tag
5787
 
web2py.gluon.html.THEAD.tag
5788
 
web2py.gluon.html.TITLE.tag
5789
 
web2py.gluon.html.TR.tag
5790
 
web2py.gluon.html.TT.tag
5791
 
web2py.gluon.html.UL.tag
5792
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-368', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'textarea'</tt> </tt>
5793
 
<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
5794
 
<a name="TEXTAREA._postprocessing"></a><div id="TEXTAREA._postprocessing-def"><a name="L1602"></a><tt class="py-lineno">1602</tt> <a class="py-toggle" href="#" id="TEXTAREA._postprocessing-toggle" onclick="return toggle('TEXTAREA._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TEXTAREA-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5795
 
</div><div id="TEXTAREA._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TEXTAREA._postprocessing-expanded"><a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_rows'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
5796
 
<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_rows'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">10</tt> </tt>
5797
 
<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_cols'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
5798
 
<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_cols'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">40</tt> </tt>
5799
 
<a name="L1607"></a><tt class="py-lineno">1607</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-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
5800
 
<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
5801
 
<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
5802
 
<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
5803
 
</div></div><a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"> </tt>
5804
 
<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"> </tt>
5805
 
<a name="OPTION"></a><div id="OPTION-def"><a name="L1613"></a><tt class="py-lineno">1613</tt> <a class="py-toggle" href="#" id="OPTION-toggle" onclick="return toggle('OPTION');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OPTION-class.html">OPTION</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5806
 
</div><div id="OPTION-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OPTION-expanded"><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"> </tt>
5807
 
<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">    <tt id="link-369" class="py-name"><a title="web2py.gluon.html.A.tag
5808
 
web2py.gluon.html.B.tag
5809
 
web2py.gluon.html.BEAUTIFY.tag
5810
 
web2py.gluon.html.BODY.tag
5811
 
web2py.gluon.html.BR.tag
5812
 
web2py.gluon.html.BUTTON.tag
5813
 
web2py.gluon.html.CAT.tag
5814
 
web2py.gluon.html.CENTER.tag
5815
 
web2py.gluon.html.COL.tag
5816
 
web2py.gluon.html.COLGROUP.tag
5817
 
web2py.gluon.html.DIV.tag
5818
 
web2py.gluon.html.EM.tag
5819
 
web2py.gluon.html.EMBED.tag
5820
 
web2py.gluon.html.FIELDSET.tag
5821
 
web2py.gluon.html.FORM.tag
5822
 
web2py.gluon.html.H1.tag
5823
 
web2py.gluon.html.H2.tag
5824
 
web2py.gluon.html.H3.tag
5825
 
web2py.gluon.html.H4.tag
5826
 
web2py.gluon.html.H5.tag
5827
 
web2py.gluon.html.H6.tag
5828
 
web2py.gluon.html.HEAD.tag
5829
 
web2py.gluon.html.HR.tag
5830
 
web2py.gluon.html.HTML.tag
5831
 
web2py.gluon.html.I.tag
5832
 
web2py.gluon.html.IFRAME.tag
5833
 
web2py.gluon.html.IMG.tag
5834
 
web2py.gluon.html.INPUT.tag
5835
 
web2py.gluon.html.LABEL.tag
5836
 
web2py.gluon.html.LEGEND.tag
5837
 
web2py.gluon.html.LI.tag
5838
 
web2py.gluon.html.LINK.tag
5839
 
web2py.gluon.html.MENU.tag
5840
 
web2py.gluon.html.META.tag
5841
 
web2py.gluon.html.OBJECT.tag
5842
 
web2py.gluon.html.OL.tag
5843
 
web2py.gluon.html.OPTGROUP.tag
5844
 
web2py.gluon.html.OPTION.tag
5845
 
web2py.gluon.html.P.tag
5846
 
web2py.gluon.html.PRE.tag
5847
 
web2py.gluon.html.SCRIPT.tag
5848
 
web2py.gluon.html.SELECT.tag
5849
 
web2py.gluon.html.SPAN.tag
5850
 
web2py.gluon.html.STYLE.tag
5851
 
web2py.gluon.html.TABLE.tag
5852
 
web2py.gluon.html.TBODY.tag
5853
 
web2py.gluon.html.TD.tag
5854
 
web2py.gluon.html.TEXTAREA.tag
5855
 
web2py.gluon.html.TFOOT.tag
5856
 
web2py.gluon.html.TH.tag
5857
 
web2py.gluon.html.THEAD.tag
5858
 
web2py.gluon.html.TITLE.tag
5859
 
web2py.gluon.html.TR.tag
5860
 
web2py.gluon.html.TT.tag
5861
 
web2py.gluon.html.UL.tag
5862
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-369', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'option'</tt> </tt>
5863
 
<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"> </tt>
5864
 
<a name="OPTION._fixup"></a><div id="OPTION._fixup-def"><a name="L1617"></a><tt class="py-lineno">1617</tt> <a class="py-toggle" href="#" id="OPTION._fixup-toggle" onclick="return toggle('OPTION._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.OPTION-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5865
 
</div><div id="OPTION._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="OPTION._fixup-expanded"><a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
5866
 
<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
5867
 
</div></div><a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"> </tt>
5868
 
<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
5869
 
<a name="OBJECT"></a><div id="OBJECT-def"><a name="L1622"></a><tt class="py-lineno">1622</tt> <a class="py-toggle" href="#" id="OBJECT-toggle" onclick="return toggle('OBJECT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OBJECT-class.html">OBJECT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5870
 
</div><div id="OBJECT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OBJECT-expanded"><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"> </tt>
5871
 
<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">    <tt id="link-370" class="py-name"><a title="web2py.gluon.html.A.tag
5872
 
web2py.gluon.html.B.tag
5873
 
web2py.gluon.html.BEAUTIFY.tag
5874
 
web2py.gluon.html.BODY.tag
5875
 
web2py.gluon.html.BR.tag
5876
 
web2py.gluon.html.BUTTON.tag
5877
 
web2py.gluon.html.CAT.tag
5878
 
web2py.gluon.html.CENTER.tag
5879
 
web2py.gluon.html.COL.tag
5880
 
web2py.gluon.html.COLGROUP.tag
5881
 
web2py.gluon.html.DIV.tag
5882
 
web2py.gluon.html.EM.tag
5883
 
web2py.gluon.html.EMBED.tag
5884
 
web2py.gluon.html.FIELDSET.tag
5885
 
web2py.gluon.html.FORM.tag
5886
 
web2py.gluon.html.H1.tag
5887
 
web2py.gluon.html.H2.tag
5888
 
web2py.gluon.html.H3.tag
5889
 
web2py.gluon.html.H4.tag
5890
 
web2py.gluon.html.H5.tag
5891
 
web2py.gluon.html.H6.tag
5892
 
web2py.gluon.html.HEAD.tag
5893
 
web2py.gluon.html.HR.tag
5894
 
web2py.gluon.html.HTML.tag
5895
 
web2py.gluon.html.I.tag
5896
 
web2py.gluon.html.IFRAME.tag
5897
 
web2py.gluon.html.IMG.tag
5898
 
web2py.gluon.html.INPUT.tag
5899
 
web2py.gluon.html.LABEL.tag
5900
 
web2py.gluon.html.LEGEND.tag
5901
 
web2py.gluon.html.LI.tag
5902
 
web2py.gluon.html.LINK.tag
5903
 
web2py.gluon.html.MENU.tag
5904
 
web2py.gluon.html.META.tag
5905
 
web2py.gluon.html.OBJECT.tag
5906
 
web2py.gluon.html.OL.tag
5907
 
web2py.gluon.html.OPTGROUP.tag
5908
 
web2py.gluon.html.OPTION.tag
5909
 
web2py.gluon.html.P.tag
5910
 
web2py.gluon.html.PRE.tag
5911
 
web2py.gluon.html.SCRIPT.tag
5912
 
web2py.gluon.html.SELECT.tag
5913
 
web2py.gluon.html.SPAN.tag
5914
 
web2py.gluon.html.STYLE.tag
5915
 
web2py.gluon.html.TABLE.tag
5916
 
web2py.gluon.html.TBODY.tag
5917
 
web2py.gluon.html.TD.tag
5918
 
web2py.gluon.html.TEXTAREA.tag
5919
 
web2py.gluon.html.TFOOT.tag
5920
 
web2py.gluon.html.TH.tag
5921
 
web2py.gluon.html.THEAD.tag
5922
 
web2py.gluon.html.TITLE.tag
5923
 
web2py.gluon.html.TR.tag
5924
 
web2py.gluon.html.TT.tag
5925
 
web2py.gluon.html.UL.tag
5926
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-370', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'object'</tt> </tt>
5927
 
</div><a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"> </tt>
5928
 
<a name="OPTGROUP"></a><div id="OPTGROUP-def"><a name="L1626"></a><tt class="py-lineno">1626</tt> <a class="py-toggle" href="#" id="OPTGROUP-toggle" onclick="return toggle('OPTGROUP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OPTGROUP-class.html">OPTGROUP</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5929
 
</div><div id="OPTGROUP-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OPTGROUP-expanded"><a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"> </tt>
5930
 
<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">    <tt id="link-371" class="py-name"><a title="web2py.gluon.html.A.tag
5931
 
web2py.gluon.html.B.tag
5932
 
web2py.gluon.html.BEAUTIFY.tag
5933
 
web2py.gluon.html.BODY.tag
5934
 
web2py.gluon.html.BR.tag
5935
 
web2py.gluon.html.BUTTON.tag
5936
 
web2py.gluon.html.CAT.tag
5937
 
web2py.gluon.html.CENTER.tag
5938
 
web2py.gluon.html.COL.tag
5939
 
web2py.gluon.html.COLGROUP.tag
5940
 
web2py.gluon.html.DIV.tag
5941
 
web2py.gluon.html.EM.tag
5942
 
web2py.gluon.html.EMBED.tag
5943
 
web2py.gluon.html.FIELDSET.tag
5944
 
web2py.gluon.html.FORM.tag
5945
 
web2py.gluon.html.H1.tag
5946
 
web2py.gluon.html.H2.tag
5947
 
web2py.gluon.html.H3.tag
5948
 
web2py.gluon.html.H4.tag
5949
 
web2py.gluon.html.H5.tag
5950
 
web2py.gluon.html.H6.tag
5951
 
web2py.gluon.html.HEAD.tag
5952
 
web2py.gluon.html.HR.tag
5953
 
web2py.gluon.html.HTML.tag
5954
 
web2py.gluon.html.I.tag
5955
 
web2py.gluon.html.IFRAME.tag
5956
 
web2py.gluon.html.IMG.tag
5957
 
web2py.gluon.html.INPUT.tag
5958
 
web2py.gluon.html.LABEL.tag
5959
 
web2py.gluon.html.LEGEND.tag
5960
 
web2py.gluon.html.LI.tag
5961
 
web2py.gluon.html.LINK.tag
5962
 
web2py.gluon.html.MENU.tag
5963
 
web2py.gluon.html.META.tag
5964
 
web2py.gluon.html.OBJECT.tag
5965
 
web2py.gluon.html.OL.tag
5966
 
web2py.gluon.html.OPTGROUP.tag
5967
 
web2py.gluon.html.OPTION.tag
5968
 
web2py.gluon.html.P.tag
5969
 
web2py.gluon.html.PRE.tag
5970
 
web2py.gluon.html.SCRIPT.tag
5971
 
web2py.gluon.html.SELECT.tag
5972
 
web2py.gluon.html.SPAN.tag
5973
 
web2py.gluon.html.STYLE.tag
5974
 
web2py.gluon.html.TABLE.tag
5975
 
web2py.gluon.html.TBODY.tag
5976
 
web2py.gluon.html.TD.tag
5977
 
web2py.gluon.html.TEXTAREA.tag
5978
 
web2py.gluon.html.TFOOT.tag
5979
 
web2py.gluon.html.TH.tag
5980
 
web2py.gluon.html.THEAD.tag
5981
 
web2py.gluon.html.TITLE.tag
5982
 
web2py.gluon.html.TR.tag
5983
 
web2py.gluon.html.TT.tag
5984
 
web2py.gluon.html.UL.tag
5985
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-371', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'optgroup'</tt> </tt>
 
5167
<a name="TFOOT"></a><div id="TFOOT-def"><a name="L1464"></a><tt class="py-lineno">1464</tt> <a class="py-toggle" href="#" id="TFOOT-toggle" onclick="return toggle('TFOOT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TFOOT-class.html">TFOOT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5168
</div><div id="TFOOT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TFOOT-expanded"><a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"> </tt>
 
5169
<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">    <tt id="link-307" class="py-name"><a title="web2py.gluon.html.A.tag
 
5170
web2py.gluon.html.B.tag
 
5171
web2py.gluon.html.BEAUTIFY.tag
 
5172
web2py.gluon.html.BODY.tag
 
5173
web2py.gluon.html.BR.tag
 
5174
web2py.gluon.html.BUTTON.tag
 
5175
web2py.gluon.html.CAT.tag
 
5176
web2py.gluon.html.CENTER.tag
 
5177
web2py.gluon.html.COL.tag
 
5178
web2py.gluon.html.COLGROUP.tag
 
5179
web2py.gluon.html.DIV.tag
 
5180
web2py.gluon.html.EM.tag
 
5181
web2py.gluon.html.EMBED.tag
 
5182
web2py.gluon.html.FIELDSET.tag
 
5183
web2py.gluon.html.FORM.tag
 
5184
web2py.gluon.html.H1.tag
 
5185
web2py.gluon.html.H2.tag
 
5186
web2py.gluon.html.H3.tag
 
5187
web2py.gluon.html.H4.tag
 
5188
web2py.gluon.html.H5.tag
 
5189
web2py.gluon.html.H6.tag
 
5190
web2py.gluon.html.HEAD.tag
 
5191
web2py.gluon.html.HR.tag
 
5192
web2py.gluon.html.HTML.tag
 
5193
web2py.gluon.html.I.tag
 
5194
web2py.gluon.html.IFRAME.tag
 
5195
web2py.gluon.html.IMG.tag
 
5196
web2py.gluon.html.INPUT.tag
 
5197
web2py.gluon.html.LABEL.tag
 
5198
web2py.gluon.html.LEGEND.tag
 
5199
web2py.gluon.html.LI.tag
 
5200
web2py.gluon.html.LINK.tag
 
5201
web2py.gluon.html.MENU.tag
 
5202
web2py.gluon.html.META.tag
 
5203
web2py.gluon.html.OBJECT.tag
 
5204
web2py.gluon.html.OL.tag
 
5205
web2py.gluon.html.OPTGROUP.tag
 
5206
web2py.gluon.html.OPTION.tag
 
5207
web2py.gluon.html.P.tag
 
5208
web2py.gluon.html.PRE.tag
 
5209
web2py.gluon.html.SCRIPT.tag
 
5210
web2py.gluon.html.SELECT.tag
 
5211
web2py.gluon.html.SPAN.tag
 
5212
web2py.gluon.html.STYLE.tag
 
5213
web2py.gluon.html.TABLE.tag
 
5214
web2py.gluon.html.TBODY.tag
 
5215
web2py.gluon.html.TD.tag
 
5216
web2py.gluon.html.TEXTAREA.tag
 
5217
web2py.gluon.html.TFOOT.tag
 
5218
web2py.gluon.html.TH.tag
 
5219
web2py.gluon.html.THEAD.tag
 
5220
web2py.gluon.html.TITLE.tag
 
5221
web2py.gluon.html.TR.tag
 
5222
web2py.gluon.html.TT.tag
 
5223
web2py.gluon.html.UL.tag
 
5224
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-307', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'tfoot'</tt> </tt>
 
5225
<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"> </tt>
 
5226
<a name="TFOOT._fixup"></a><div id="TFOOT._fixup-def"><a name="L1468"></a><tt class="py-lineno">1468</tt> <a class="py-toggle" href="#" id="TFOOT._fixup-toggle" onclick="return toggle('TFOOT._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TFOOT-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5227
</div><div id="TFOOT._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TFOOT._fixup-expanded"><a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-308', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt id="link-309" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-309', 'TR', 'link-301');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-310" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-310', 'TR', 'link-301');">TR</a></tt><tt class="py-op">)</tt> </tt>
 
5228
</div></div><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"> </tt>
 
5229
<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"> </tt>
 
5230
<a name="COL"></a><div id="COL-def"><a name="L1472"></a><tt class="py-lineno">1472</tt> <a class="py-toggle" href="#" id="COL-toggle" onclick="return toggle('COL');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.COL-class.html">COL</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5231
</div><div id="COL-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="COL-expanded"><a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"> </tt>
 
5232
<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">    <tt id="link-311" class="py-name"><a title="web2py.gluon.html.A.tag
 
5233
web2py.gluon.html.B.tag
 
5234
web2py.gluon.html.BEAUTIFY.tag
 
5235
web2py.gluon.html.BODY.tag
 
5236
web2py.gluon.html.BR.tag
 
5237
web2py.gluon.html.BUTTON.tag
 
5238
web2py.gluon.html.CAT.tag
 
5239
web2py.gluon.html.CENTER.tag
 
5240
web2py.gluon.html.COL.tag
 
5241
web2py.gluon.html.COLGROUP.tag
 
5242
web2py.gluon.html.DIV.tag
 
5243
web2py.gluon.html.EM.tag
 
5244
web2py.gluon.html.EMBED.tag
 
5245
web2py.gluon.html.FIELDSET.tag
 
5246
web2py.gluon.html.FORM.tag
 
5247
web2py.gluon.html.H1.tag
 
5248
web2py.gluon.html.H2.tag
 
5249
web2py.gluon.html.H3.tag
 
5250
web2py.gluon.html.H4.tag
 
5251
web2py.gluon.html.H5.tag
 
5252
web2py.gluon.html.H6.tag
 
5253
web2py.gluon.html.HEAD.tag
 
5254
web2py.gluon.html.HR.tag
 
5255
web2py.gluon.html.HTML.tag
 
5256
web2py.gluon.html.I.tag
 
5257
web2py.gluon.html.IFRAME.tag
 
5258
web2py.gluon.html.IMG.tag
 
5259
web2py.gluon.html.INPUT.tag
 
5260
web2py.gluon.html.LABEL.tag
 
5261
web2py.gluon.html.LEGEND.tag
 
5262
web2py.gluon.html.LI.tag
 
5263
web2py.gluon.html.LINK.tag
 
5264
web2py.gluon.html.MENU.tag
 
5265
web2py.gluon.html.META.tag
 
5266
web2py.gluon.html.OBJECT.tag
 
5267
web2py.gluon.html.OL.tag
 
5268
web2py.gluon.html.OPTGROUP.tag
 
5269
web2py.gluon.html.OPTION.tag
 
5270
web2py.gluon.html.P.tag
 
5271
web2py.gluon.html.PRE.tag
 
5272
web2py.gluon.html.SCRIPT.tag
 
5273
web2py.gluon.html.SELECT.tag
 
5274
web2py.gluon.html.SPAN.tag
 
5275
web2py.gluon.html.STYLE.tag
 
5276
web2py.gluon.html.TABLE.tag
 
5277
web2py.gluon.html.TBODY.tag
 
5278
web2py.gluon.html.TD.tag
 
5279
web2py.gluon.html.TEXTAREA.tag
 
5280
web2py.gluon.html.TFOOT.tag
 
5281
web2py.gluon.html.TH.tag
 
5282
web2py.gluon.html.THEAD.tag
 
5283
web2py.gluon.html.TITLE.tag
 
5284
web2py.gluon.html.TR.tag
 
5285
web2py.gluon.html.TT.tag
 
5286
web2py.gluon.html.UL.tag
 
5287
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-311', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'col'</tt> </tt>
 
5288
</div><a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"> </tt>
 
5289
<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"> </tt>
 
5290
<a name="COLGROUP"></a><div id="COLGROUP-def"><a name="L1477"></a><tt class="py-lineno">1477</tt> <a class="py-toggle" href="#" id="COLGROUP-toggle" onclick="return toggle('COLGROUP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.COLGROUP-class.html">COLGROUP</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5291
</div><div id="COLGROUP-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="COLGROUP-expanded"><a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"> </tt>
 
5292
<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">    <tt id="link-312" class="py-name"><a title="web2py.gluon.html.A.tag
 
5293
web2py.gluon.html.B.tag
 
5294
web2py.gluon.html.BEAUTIFY.tag
 
5295
web2py.gluon.html.BODY.tag
 
5296
web2py.gluon.html.BR.tag
 
5297
web2py.gluon.html.BUTTON.tag
 
5298
web2py.gluon.html.CAT.tag
 
5299
web2py.gluon.html.CENTER.tag
 
5300
web2py.gluon.html.COL.tag
 
5301
web2py.gluon.html.COLGROUP.tag
 
5302
web2py.gluon.html.DIV.tag
 
5303
web2py.gluon.html.EM.tag
 
5304
web2py.gluon.html.EMBED.tag
 
5305
web2py.gluon.html.FIELDSET.tag
 
5306
web2py.gluon.html.FORM.tag
 
5307
web2py.gluon.html.H1.tag
 
5308
web2py.gluon.html.H2.tag
 
5309
web2py.gluon.html.H3.tag
 
5310
web2py.gluon.html.H4.tag
 
5311
web2py.gluon.html.H5.tag
 
5312
web2py.gluon.html.H6.tag
 
5313
web2py.gluon.html.HEAD.tag
 
5314
web2py.gluon.html.HR.tag
 
5315
web2py.gluon.html.HTML.tag
 
5316
web2py.gluon.html.I.tag
 
5317
web2py.gluon.html.IFRAME.tag
 
5318
web2py.gluon.html.IMG.tag
 
5319
web2py.gluon.html.INPUT.tag
 
5320
web2py.gluon.html.LABEL.tag
 
5321
web2py.gluon.html.LEGEND.tag
 
5322
web2py.gluon.html.LI.tag
 
5323
web2py.gluon.html.LINK.tag
 
5324
web2py.gluon.html.MENU.tag
 
5325
web2py.gluon.html.META.tag
 
5326
web2py.gluon.html.OBJECT.tag
 
5327
web2py.gluon.html.OL.tag
 
5328
web2py.gluon.html.OPTGROUP.tag
 
5329
web2py.gluon.html.OPTION.tag
 
5330
web2py.gluon.html.P.tag
 
5331
web2py.gluon.html.PRE.tag
 
5332
web2py.gluon.html.SCRIPT.tag
 
5333
web2py.gluon.html.SELECT.tag
 
5334
web2py.gluon.html.SPAN.tag
 
5335
web2py.gluon.html.STYLE.tag
 
5336
web2py.gluon.html.TABLE.tag
 
5337
web2py.gluon.html.TBODY.tag
 
5338
web2py.gluon.html.TD.tag
 
5339
web2py.gluon.html.TEXTAREA.tag
 
5340
web2py.gluon.html.TFOOT.tag
 
5341
web2py.gluon.html.TH.tag
 
5342
web2py.gluon.html.THEAD.tag
 
5343
web2py.gluon.html.TITLE.tag
 
5344
web2py.gluon.html.TR.tag
 
5345
web2py.gluon.html.TT.tag
 
5346
web2py.gluon.html.UL.tag
 
5347
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-312', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'colgroup'</tt> </tt>
 
5348
</div><a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line"> </tt>
 
5349
<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"> </tt>
 
5350
<a name="TABLE"></a><div id="TABLE-def"><a name="L1482"></a><tt class="py-lineno">1482</tt> <a class="py-toggle" href="#" id="TABLE-toggle" onclick="return toggle('TABLE');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TABLE-class.html">TABLE</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5351
</div><div id="TABLE-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TABLE-expanded"><a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
5352
<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"><tt class="py-docstring">    TABLE Component.</tt> </tt>
 
5353
<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5354
<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-docstring">    If subcomponents are not TR/TBODY/THEAD/TFOOT-components</tt> </tt>
 
5355
<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"><tt class="py-docstring">    they will be wrapped in a TR</tt> </tt>
 
5356
<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5357
<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"><tt class="py-docstring">    see also :class:`DIV`</tt> </tt>
 
5358
<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
5359
<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"> </tt>
 
5360
<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">    <tt id="link-313" class="py-name"><a title="web2py.gluon.html.A.tag
 
5361
web2py.gluon.html.B.tag
 
5362
web2py.gluon.html.BEAUTIFY.tag
 
5363
web2py.gluon.html.BODY.tag
 
5364
web2py.gluon.html.BR.tag
 
5365
web2py.gluon.html.BUTTON.tag
 
5366
web2py.gluon.html.CAT.tag
 
5367
web2py.gluon.html.CENTER.tag
 
5368
web2py.gluon.html.COL.tag
 
5369
web2py.gluon.html.COLGROUP.tag
 
5370
web2py.gluon.html.DIV.tag
 
5371
web2py.gluon.html.EM.tag
 
5372
web2py.gluon.html.EMBED.tag
 
5373
web2py.gluon.html.FIELDSET.tag
 
5374
web2py.gluon.html.FORM.tag
 
5375
web2py.gluon.html.H1.tag
 
5376
web2py.gluon.html.H2.tag
 
5377
web2py.gluon.html.H3.tag
 
5378
web2py.gluon.html.H4.tag
 
5379
web2py.gluon.html.H5.tag
 
5380
web2py.gluon.html.H6.tag
 
5381
web2py.gluon.html.HEAD.tag
 
5382
web2py.gluon.html.HR.tag
 
5383
web2py.gluon.html.HTML.tag
 
5384
web2py.gluon.html.I.tag
 
5385
web2py.gluon.html.IFRAME.tag
 
5386
web2py.gluon.html.IMG.tag
 
5387
web2py.gluon.html.INPUT.tag
 
5388
web2py.gluon.html.LABEL.tag
 
5389
web2py.gluon.html.LEGEND.tag
 
5390
web2py.gluon.html.LI.tag
 
5391
web2py.gluon.html.LINK.tag
 
5392
web2py.gluon.html.MENU.tag
 
5393
web2py.gluon.html.META.tag
 
5394
web2py.gluon.html.OBJECT.tag
 
5395
web2py.gluon.html.OL.tag
 
5396
web2py.gluon.html.OPTGROUP.tag
 
5397
web2py.gluon.html.OPTION.tag
 
5398
web2py.gluon.html.P.tag
 
5399
web2py.gluon.html.PRE.tag
 
5400
web2py.gluon.html.SCRIPT.tag
 
5401
web2py.gluon.html.SELECT.tag
 
5402
web2py.gluon.html.SPAN.tag
 
5403
web2py.gluon.html.STYLE.tag
 
5404
web2py.gluon.html.TABLE.tag
 
5405
web2py.gluon.html.TBODY.tag
 
5406
web2py.gluon.html.TD.tag
 
5407
web2py.gluon.html.TEXTAREA.tag
 
5408
web2py.gluon.html.TFOOT.tag
 
5409
web2py.gluon.html.TH.tag
 
5410
web2py.gluon.html.THEAD.tag
 
5411
web2py.gluon.html.TITLE.tag
 
5412
web2py.gluon.html.TR.tag
 
5413
web2py.gluon.html.TT.tag
 
5414
web2py.gluon.html.UL.tag
 
5415
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-313', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'table'</tt> </tt>
 
5416
<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"> </tt>
 
5417
<a name="TABLE._fixup"></a><div id="TABLE._fixup-def"><a name="L1494"></a><tt class="py-lineno">1494</tt> <a class="py-toggle" href="#" id="TABLE._fixup-toggle" onclick="return toggle('TABLE._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TABLE-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5418
</div><div id="TABLE._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TABLE._fixup-expanded"><a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="web2py.gluon.html.DIV._wrap_components" class="py-name" href="#" onclick="return doclink('link-314', '_wrap_components', 'link-288');">_wrap_components</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-315" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-315', 'TR', 'link-301');">TR</a></tt><tt class="py-op">,</tt> <tt id="link-316" class="py-name" targets="Class web2py.gluon.html.TBODY=web2py.gluon.html.TBODY-class.html"><a title="web2py.gluon.html.TBODY" class="py-name" href="#" onclick="return doclink('link-316', 'TBODY', 'link-316');">TBODY</a></tt><tt class="py-op">,</tt> <tt id="link-317" class="py-name" targets="Class web2py.gluon.html.THEAD=web2py.gluon.html.THEAD-class.html"><a title="web2py.gluon.html.THEAD" class="py-name" href="#" onclick="return doclink('link-317', 'THEAD', 'link-317');">THEAD</a></tt><tt class="py-op">,</tt> <tt id="link-318" class="py-name" targets="Class web2py.gluon.html.TFOOT=web2py.gluon.html.TFOOT-class.html"><a title="web2py.gluon.html.TFOOT" class="py-name" href="#" onclick="return doclink('link-318', 'TFOOT', 'link-318');">TFOOT</a></tt><tt class="py-op">,</tt> <tt id="link-319" class="py-name" targets="Class web2py.gluon.html.COL=web2py.gluon.html.COL-class.html"><a title="web2py.gluon.html.COL" class="py-name" href="#" onclick="return doclink('link-319', 'COL', 'link-319');">COL</a></tt><tt class="py-op">,</tt> <tt id="link-320" class="py-name" targets="Class web2py.gluon.html.COLGROUP=web2py.gluon.html.COLGROUP-class.html"><a title="web2py.gluon.html.COLGROUP" class="py-name" href="#" onclick="return doclink('link-320', 'COLGROUP', 'link-320');">COLGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-321" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-321', 'TR', 'link-301');">TR</a></tt><tt class="py-op">)</tt> </tt>
 
5419
</div></div><a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"> </tt>
 
5420
<a name="I"></a><div id="I-def"><a name="L1497"></a><tt class="py-lineno">1497</tt> <a class="py-toggle" href="#" id="I-toggle" onclick="return toggle('I');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.I-class.html">I</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5421
</div><div id="I-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="I-expanded"><a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"> </tt>
 
5422
<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">    <tt id="link-322" class="py-name"><a title="web2py.gluon.html.A.tag
 
5423
web2py.gluon.html.B.tag
 
5424
web2py.gluon.html.BEAUTIFY.tag
 
5425
web2py.gluon.html.BODY.tag
 
5426
web2py.gluon.html.BR.tag
 
5427
web2py.gluon.html.BUTTON.tag
 
5428
web2py.gluon.html.CAT.tag
 
5429
web2py.gluon.html.CENTER.tag
 
5430
web2py.gluon.html.COL.tag
 
5431
web2py.gluon.html.COLGROUP.tag
 
5432
web2py.gluon.html.DIV.tag
 
5433
web2py.gluon.html.EM.tag
 
5434
web2py.gluon.html.EMBED.tag
 
5435
web2py.gluon.html.FIELDSET.tag
 
5436
web2py.gluon.html.FORM.tag
 
5437
web2py.gluon.html.H1.tag
 
5438
web2py.gluon.html.H2.tag
 
5439
web2py.gluon.html.H3.tag
 
5440
web2py.gluon.html.H4.tag
 
5441
web2py.gluon.html.H5.tag
 
5442
web2py.gluon.html.H6.tag
 
5443
web2py.gluon.html.HEAD.tag
 
5444
web2py.gluon.html.HR.tag
 
5445
web2py.gluon.html.HTML.tag
 
5446
web2py.gluon.html.I.tag
 
5447
web2py.gluon.html.IFRAME.tag
 
5448
web2py.gluon.html.IMG.tag
 
5449
web2py.gluon.html.INPUT.tag
 
5450
web2py.gluon.html.LABEL.tag
 
5451
web2py.gluon.html.LEGEND.tag
 
5452
web2py.gluon.html.LI.tag
 
5453
web2py.gluon.html.LINK.tag
 
5454
web2py.gluon.html.MENU.tag
 
5455
web2py.gluon.html.META.tag
 
5456
web2py.gluon.html.OBJECT.tag
 
5457
web2py.gluon.html.OL.tag
 
5458
web2py.gluon.html.OPTGROUP.tag
 
5459
web2py.gluon.html.OPTION.tag
 
5460
web2py.gluon.html.P.tag
 
5461
web2py.gluon.html.PRE.tag
 
5462
web2py.gluon.html.SCRIPT.tag
 
5463
web2py.gluon.html.SELECT.tag
 
5464
web2py.gluon.html.SPAN.tag
 
5465
web2py.gluon.html.STYLE.tag
 
5466
web2py.gluon.html.TABLE.tag
 
5467
web2py.gluon.html.TBODY.tag
 
5468
web2py.gluon.html.TD.tag
 
5469
web2py.gluon.html.TEXTAREA.tag
 
5470
web2py.gluon.html.TFOOT.tag
 
5471
web2py.gluon.html.TH.tag
 
5472
web2py.gluon.html.THEAD.tag
 
5473
web2py.gluon.html.TITLE.tag
 
5474
web2py.gluon.html.TR.tag
 
5475
web2py.gluon.html.TT.tag
 
5476
web2py.gluon.html.UL.tag
 
5477
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-322', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'i'</tt> </tt>
 
5478
</div><a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"> </tt>
 
5479
<a name="IFRAME"></a><div id="IFRAME-def"><a name="L1501"></a><tt class="py-lineno">1501</tt> <a class="py-toggle" href="#" id="IFRAME-toggle" onclick="return toggle('IFRAME');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.IFRAME-class.html">IFRAME</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5480
</div><div id="IFRAME-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="IFRAME-expanded"><a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"> </tt>
 
5481
<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">    <tt id="link-323" class="py-name"><a title="web2py.gluon.html.A.tag
 
5482
web2py.gluon.html.B.tag
 
5483
web2py.gluon.html.BEAUTIFY.tag
 
5484
web2py.gluon.html.BODY.tag
 
5485
web2py.gluon.html.BR.tag
 
5486
web2py.gluon.html.BUTTON.tag
 
5487
web2py.gluon.html.CAT.tag
 
5488
web2py.gluon.html.CENTER.tag
 
5489
web2py.gluon.html.COL.tag
 
5490
web2py.gluon.html.COLGROUP.tag
 
5491
web2py.gluon.html.DIV.tag
 
5492
web2py.gluon.html.EM.tag
 
5493
web2py.gluon.html.EMBED.tag
 
5494
web2py.gluon.html.FIELDSET.tag
 
5495
web2py.gluon.html.FORM.tag
 
5496
web2py.gluon.html.H1.tag
 
5497
web2py.gluon.html.H2.tag
 
5498
web2py.gluon.html.H3.tag
 
5499
web2py.gluon.html.H4.tag
 
5500
web2py.gluon.html.H5.tag
 
5501
web2py.gluon.html.H6.tag
 
5502
web2py.gluon.html.HEAD.tag
 
5503
web2py.gluon.html.HR.tag
 
5504
web2py.gluon.html.HTML.tag
 
5505
web2py.gluon.html.I.tag
 
5506
web2py.gluon.html.IFRAME.tag
 
5507
web2py.gluon.html.IMG.tag
 
5508
web2py.gluon.html.INPUT.tag
 
5509
web2py.gluon.html.LABEL.tag
 
5510
web2py.gluon.html.LEGEND.tag
 
5511
web2py.gluon.html.LI.tag
 
5512
web2py.gluon.html.LINK.tag
 
5513
web2py.gluon.html.MENU.tag
 
5514
web2py.gluon.html.META.tag
 
5515
web2py.gluon.html.OBJECT.tag
 
5516
web2py.gluon.html.OL.tag
 
5517
web2py.gluon.html.OPTGROUP.tag
 
5518
web2py.gluon.html.OPTION.tag
 
5519
web2py.gluon.html.P.tag
 
5520
web2py.gluon.html.PRE.tag
 
5521
web2py.gluon.html.SCRIPT.tag
 
5522
web2py.gluon.html.SELECT.tag
 
5523
web2py.gluon.html.SPAN.tag
 
5524
web2py.gluon.html.STYLE.tag
 
5525
web2py.gluon.html.TABLE.tag
 
5526
web2py.gluon.html.TBODY.tag
 
5527
web2py.gluon.html.TD.tag
 
5528
web2py.gluon.html.TEXTAREA.tag
 
5529
web2py.gluon.html.TFOOT.tag
 
5530
web2py.gluon.html.TH.tag
 
5531
web2py.gluon.html.THEAD.tag
 
5532
web2py.gluon.html.TITLE.tag
 
5533
web2py.gluon.html.TR.tag
 
5534
web2py.gluon.html.TT.tag
 
5535
web2py.gluon.html.UL.tag
 
5536
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-323', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'iframe'</tt> </tt>
 
5537
</div><a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"> </tt>
 
5538
<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"> </tt>
 
5539
<a name="INPUT"></a><div id="INPUT-def"><a name="L1506"></a><tt class="py-lineno">1506</tt> <a class="py-toggle" href="#" id="INPUT-toggle" onclick="return toggle('INPUT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html">INPUT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5540
</div><div id="INPUT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="INPUT-expanded"><a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"> </tt>
 
5541
<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
5542
<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-docstring">        INPUT Component</tt> </tt>
 
5543
<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5544
<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-docstring">        examples::</tt> </tt>
 
5545
<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5546
<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='text', _name='name', value='Max').xml()</tt> </tt>
 
5547
<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input name=\"name\" type=\"text\" value=\"Max\" /&gt;'</tt> </tt>
 
5548
<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5549
<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='checkbox', _name='checkbox', value='on').xml()</tt> </tt>
 
5550
<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input checked=\"checked\" name=\"checkbox\" type=\"checkbox\" value=\"on\" /&gt;'</tt> </tt>
 
5551
<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5552
<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='radio', _name='radio', _value='yes', value='yes').xml()</tt> </tt>
 
5553
<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input checked=\"checked\" name=\"radio\" type=\"radio\" value=\"yes\" /&gt;'</tt> </tt>
 
5554
<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5555
<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line"><tt class="py-docstring">            &gt;&gt;&gt; INPUT(_type='radio', _name='radio', _value='no', value='yes').xml()</tt> </tt>
 
5556
<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"><tt class="py-docstring">            '&lt;input name=\"radio\" type=\"radio\" value=\"no\" /&gt;'</tt> </tt>
 
5557
<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5558
<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"><tt class="py-docstring">        the input helper takes two special attributes value= and requires=.</tt> </tt>
 
5559
<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5560
<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"><tt class="py-docstring">        :param value: used to pass the initial value for the input field.</tt> </tt>
 
5561
<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line"><tt class="py-docstring">            value differs from _value because it works for checkboxes, radio,</tt> </tt>
 
5562
<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line"><tt class="py-docstring">            textarea and select/option too.</tt> </tt>
 
5563
<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5564
<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-docstring">            - for a checkbox value should be '' or 'on'.</tt> </tt>
 
5565
<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-docstring">            - for a radio or select/option value should be the _value</tt> </tt>
 
5566
<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-docstring">                of the checked/selected item.</tt> </tt>
 
5567
<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5568
<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-docstring">        :param requires: should be None, or a validator or a list of validators</tt> </tt>
 
5569
<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-docstring">            for the value of the field.</tt> </tt>
 
5570
<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
5571
<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"> </tt>
 
5572
<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">    <tt id="link-324" class="py-name"><a title="web2py.gluon.html.A.tag
 
5573
web2py.gluon.html.B.tag
 
5574
web2py.gluon.html.BEAUTIFY.tag
 
5575
web2py.gluon.html.BODY.tag
 
5576
web2py.gluon.html.BR.tag
 
5577
web2py.gluon.html.BUTTON.tag
 
5578
web2py.gluon.html.CAT.tag
 
5579
web2py.gluon.html.CENTER.tag
 
5580
web2py.gluon.html.COL.tag
 
5581
web2py.gluon.html.COLGROUP.tag
 
5582
web2py.gluon.html.DIV.tag
 
5583
web2py.gluon.html.EM.tag
 
5584
web2py.gluon.html.EMBED.tag
 
5585
web2py.gluon.html.FIELDSET.tag
 
5586
web2py.gluon.html.FORM.tag
 
5587
web2py.gluon.html.H1.tag
 
5588
web2py.gluon.html.H2.tag
 
5589
web2py.gluon.html.H3.tag
 
5590
web2py.gluon.html.H4.tag
 
5591
web2py.gluon.html.H5.tag
 
5592
web2py.gluon.html.H6.tag
 
5593
web2py.gluon.html.HEAD.tag
 
5594
web2py.gluon.html.HR.tag
 
5595
web2py.gluon.html.HTML.tag
 
5596
web2py.gluon.html.I.tag
 
5597
web2py.gluon.html.IFRAME.tag
 
5598
web2py.gluon.html.IMG.tag
 
5599
web2py.gluon.html.INPUT.tag
 
5600
web2py.gluon.html.LABEL.tag
 
5601
web2py.gluon.html.LEGEND.tag
 
5602
web2py.gluon.html.LI.tag
 
5603
web2py.gluon.html.LINK.tag
 
5604
web2py.gluon.html.MENU.tag
 
5605
web2py.gluon.html.META.tag
 
5606
web2py.gluon.html.OBJECT.tag
 
5607
web2py.gluon.html.OL.tag
 
5608
web2py.gluon.html.OPTGROUP.tag
 
5609
web2py.gluon.html.OPTION.tag
 
5610
web2py.gluon.html.P.tag
 
5611
web2py.gluon.html.PRE.tag
 
5612
web2py.gluon.html.SCRIPT.tag
 
5613
web2py.gluon.html.SELECT.tag
 
5614
web2py.gluon.html.SPAN.tag
 
5615
web2py.gluon.html.STYLE.tag
 
5616
web2py.gluon.html.TABLE.tag
 
5617
web2py.gluon.html.TBODY.tag
 
5618
web2py.gluon.html.TD.tag
 
5619
web2py.gluon.html.TEXTAREA.tag
 
5620
web2py.gluon.html.TFOOT.tag
 
5621
web2py.gluon.html.TH.tag
 
5622
web2py.gluon.html.THEAD.tag
 
5623
web2py.gluon.html.TITLE.tag
 
5624
web2py.gluon.html.TR.tag
 
5625
web2py.gluon.html.TT.tag
 
5626
web2py.gluon.html.UL.tag
 
5627
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-324', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'input/'</tt> </tt>
 
5628
<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"> </tt>
 
5629
<a name="INPUT._validate"></a><div id="INPUT._validate-def"><a name="L1541"></a><tt class="py-lineno">1541</tt> <a class="py-toggle" href="#" id="INPUT._validate-toggle" onclick="return toggle('INPUT._validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#_validate">_validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5630
</div><div id="INPUT._validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT._validate-expanded"><a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
 
5631
<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-comment"># # this only changes value, not _value</tt> </tt>
 
5632
<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
5633
<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt id="link-325" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-325', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_name'</tt><tt class="py-op">]</tt> </tt>
 
5634
<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-326" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-326', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt id="link-327" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-327', 'name', 'link-74');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
 
5635
<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
5636
<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt id="link-328" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-328', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-329" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-329', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
 
5637
<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"> </tt>
 
5638
<a name="L1550"></a><tt class="py-lineno">1550</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-string">'_type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'checkbox'</tt><tt class="py-op">:</tt> </tt>
 
5639
<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
 
5640
<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-330', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt id="link-331" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-331', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
 
5641
<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
5642
<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5643
<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'old_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-name">False</tt> </tt>
 
5644
<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-332', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt id="link-333" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-333', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt> </tt>
 
5645
<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5646
<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt> </tt>
 
5647
<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5648
<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">value</tt> </tt>
 
5649
<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt id="link-334" class="py-name" targets="Method web2py.gluon.tools.Auth.requires()=web2py.gluon.tools.Auth-class.html#requires"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-334', 'requires', 'link-334');">requires</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'requires'</tt><tt class="py-op">]</tt> </tt>
 
5650
<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-335" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-335', 'requires', 'link-334');">requires</a></tt><tt class="py-op">:</tt> </tt>
 
5651
<a name="L1563"></a><tt class="py-lineno">1563</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 id="link-336" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-336', 'requires', 'link-334');">requires</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5652
<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">                <tt id="link-337" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-337', 'requires', 'link-334');">requires</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-338" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-338', 'requires', 'link-334');">requires</a></tt><tt class="py-op">]</tt> </tt>
 
5653
<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">validator</tt> <tt class="py-keyword">in</tt> <tt id="link-339" class="py-name"><a title="web2py.gluon.tools.Auth.requires" class="py-name" href="#" onclick="return doclink('link-339', 'requires', 'link-334');">requires</a></tt><tt class="py-op">:</tt> </tt>
 
5654
<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">errors</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">validator</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
5655
<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">errors</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
5656
<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-340" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-340', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
5657
<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">[</tt><tt id="link-341" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-341', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">errors</tt> </tt>
 
5658
<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
 
5659
<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-342" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-342', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
 
5660
<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">[</tt><tt id="link-343" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-343', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
5661
<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
5662
<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
5663
</div><a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
 
5664
<a name="INPUT._postprocessing"></a><div id="INPUT._postprocessing-def"><a name="L1576"></a><tt class="py-lineno">1576</tt> <a class="py-toggle" href="#" id="INPUT._postprocessing-toggle" onclick="return toggle('INPUT._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5665
</div><div id="INPUT._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT._postprocessing-expanded"><a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_type'</tt><tt class="py-op">]</tt> </tt>
 
5666
<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">t</tt><tt class="py-op">:</tt> </tt>
 
5667
<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">            <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'text'</tt> </tt>
 
5668
<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-344" class="py-name" targets="Method web2py.gluon.dal.Expression.lower()=web2py.gluon.dal.Expression-class.html#lower"><a title="web2py.gluon.dal.Expression.lower" class="py-name" href="#" onclick="return doclink('link-344', 'lower', 'link-344');">lower</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
5669
<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
 
5670
<a name="L1582"></a><tt class="py-lineno">1582</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-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
5671
<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">            <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
5672
<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5673
<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">            <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
5674
<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'checkbox'</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
5675
<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">_value</tt><tt class="py-op">:</tt> </tt>
 
5676
<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">                <tt class="py-name">_value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'on'</tt> </tt>
 
5677
<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
 
5678
<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
5679
<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
 
5680
<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">_value</tt><tt class="py-op">]</tt> </tt>
 
5681
<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5682
<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'|'</tt><tt class="py-op">)</tt> </tt>
 
5683
<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'checked'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">None</tt> </tt>
 
5684
<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'radio'</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_checked'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
5685
<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5686
<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'checked'</tt> </tt>
 
5687
<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5688
<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_checked'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
5689
<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'text'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt class="py-string">'hidden'</tt><tt class="py-op">:</tt> </tt>
 
5690
<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
5691
<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_value</tt> </tt>
 
5692
<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5693
<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
5694
</div><a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"> </tt>
 
5695
<a name="INPUT.xml"></a><div id="INPUT.xml-def"><a name="L1607"></a><tt class="py-lineno">1607</tt> <a class="py-toggle" href="#" id="INPUT.xml-toggle" onclick="return toggle('INPUT.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.INPUT-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5696
</div><div id="INPUT.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="INPUT.xml-expanded"><a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt id="link-345" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-345', 'name', 'link-74');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-346" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-346', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_name'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
5697
<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-347" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-347', 'name', 'link-74');">name</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'errors'</tt><tt class="py-op">)</tt> \ </tt>
 
5698
<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-348', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt id="link-349" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-349', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> \ </tt>
 
5699
<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'hideerror'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
 
5700
<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-350" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
5701
web2py.gluon.dal.NoSQLAdapter.DIV
 
5702
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-350', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
5703
web2py.gluon.html.A.xml
 
5704
web2py.gluon.html.CODE.xml
 
5705
web2py.gluon.html.DIV.xml
 
5706
web2py.gluon.html.FORM.xml
 
5707
web2py.gluon.html.HTML.xml
 
5708
web2py.gluon.html.INPUT.xml
 
5709
web2py.gluon.html.MARKMIN.xml
 
5710
web2py.gluon.html.MENU.xml
 
5711
web2py.gluon.html.P.xml
 
5712
web2py.gluon.html.SCRIPT.xml
 
5713
web2py.gluon.html.STYLE.xml
 
5714
web2py.gluon.html.XHTML.xml
 
5715
web2py.gluon.html.XML.xml
 
5716
web2py.gluon.html.XmlComponent.xml
 
5717
web2py.gluon.languages.lazyT.xml
 
5718
web2py.gluon.serializers.xml
 
5719
web2py.gluon.tools.Recaptcha.xml
 
5720
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-351', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-352" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
5721
web2py.gluon.dal.NoSQLAdapter.DIV
 
5722
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-352', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">[</tt><tt id="link-353" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-353', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-string">'error'</tt><tt class="py-op">,</tt> </tt>
 
5723
<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-name">errors</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">_id</tt><tt class="py-op">=</tt><tt class="py-string">'%s__error'</tt> <tt class="py-op">%</tt> <tt id="link-354" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-354', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
5724
web2py.gluon.html.A.xml
 
5725
web2py.gluon.html.CODE.xml
 
5726
web2py.gluon.html.DIV.xml
 
5727
web2py.gluon.html.FORM.xml
 
5728
web2py.gluon.html.HTML.xml
 
5729
web2py.gluon.html.INPUT.xml
 
5730
web2py.gluon.html.MARKMIN.xml
 
5731
web2py.gluon.html.MENU.xml
 
5732
web2py.gluon.html.P.xml
 
5733
web2py.gluon.html.SCRIPT.xml
 
5734
web2py.gluon.html.STYLE.xml
 
5735
web2py.gluon.html.XHTML.xml
 
5736
web2py.gluon.html.XML.xml
 
5737
web2py.gluon.html.XmlComponent.xml
 
5738
web2py.gluon.languages.lazyT.xml
 
5739
web2py.gluon.serializers.xml
 
5740
web2py.gluon.tools.Recaptcha.xml
 
5741
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-355', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
5742
<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
5743
<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-356" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
5744
web2py.gluon.dal.NoSQLAdapter.DIV
 
5745
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-356', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
5746
web2py.gluon.html.A.xml
 
5747
web2py.gluon.html.CODE.xml
 
5748
web2py.gluon.html.DIV.xml
 
5749
web2py.gluon.html.FORM.xml
 
5750
web2py.gluon.html.HTML.xml
 
5751
web2py.gluon.html.INPUT.xml
 
5752
web2py.gluon.html.MARKMIN.xml
 
5753
web2py.gluon.html.MENU.xml
 
5754
web2py.gluon.html.P.xml
 
5755
web2py.gluon.html.SCRIPT.xml
 
5756
web2py.gluon.html.STYLE.xml
 
5757
web2py.gluon.html.XHTML.xml
 
5758
web2py.gluon.html.XML.xml
 
5759
web2py.gluon.html.XmlComponent.xml
 
5760
web2py.gluon.languages.lazyT.xml
 
5761
web2py.gluon.serializers.xml
 
5762
web2py.gluon.tools.Recaptcha.xml
 
5763
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-357', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
5764
</div></div><a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"> </tt>
 
5765
<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"> </tt>
 
5766
<a name="TEXTAREA"></a><div id="TEXTAREA-def"><a name="L1618"></a><tt class="py-lineno">1618</tt> <a class="py-toggle" href="#" id="TEXTAREA-toggle" onclick="return toggle('TEXTAREA');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.TEXTAREA-class.html">TEXTAREA</a><tt class="py-op">(</tt><tt class="py-base-class">INPUT</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5767
</div><div id="TEXTAREA-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TEXTAREA-expanded"><a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"> </tt>
 
5768
<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
5769
<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
5770
<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5771
<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"><tt class="py-docstring">        TEXTAREA(_name='sometext', value='blah '*100, requires=IS_NOT_EMPTY())</tt> </tt>
 
5772
<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
5773
<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"><tt class="py-docstring">    'blah blah blah ...' will be the content of the textarea field.</tt> </tt>
 
5774
<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
5775
<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"> </tt>
 
5776
<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">    <tt id="link-358" class="py-name"><a title="web2py.gluon.html.A.tag
 
5777
web2py.gluon.html.B.tag
 
5778
web2py.gluon.html.BEAUTIFY.tag
 
5779
web2py.gluon.html.BODY.tag
 
5780
web2py.gluon.html.BR.tag
 
5781
web2py.gluon.html.BUTTON.tag
 
5782
web2py.gluon.html.CAT.tag
 
5783
web2py.gluon.html.CENTER.tag
 
5784
web2py.gluon.html.COL.tag
 
5785
web2py.gluon.html.COLGROUP.tag
 
5786
web2py.gluon.html.DIV.tag
 
5787
web2py.gluon.html.EM.tag
 
5788
web2py.gluon.html.EMBED.tag
 
5789
web2py.gluon.html.FIELDSET.tag
 
5790
web2py.gluon.html.FORM.tag
 
5791
web2py.gluon.html.H1.tag
 
5792
web2py.gluon.html.H2.tag
 
5793
web2py.gluon.html.H3.tag
 
5794
web2py.gluon.html.H4.tag
 
5795
web2py.gluon.html.H5.tag
 
5796
web2py.gluon.html.H6.tag
 
5797
web2py.gluon.html.HEAD.tag
 
5798
web2py.gluon.html.HR.tag
 
5799
web2py.gluon.html.HTML.tag
 
5800
web2py.gluon.html.I.tag
 
5801
web2py.gluon.html.IFRAME.tag
 
5802
web2py.gluon.html.IMG.tag
 
5803
web2py.gluon.html.INPUT.tag
 
5804
web2py.gluon.html.LABEL.tag
 
5805
web2py.gluon.html.LEGEND.tag
 
5806
web2py.gluon.html.LI.tag
 
5807
web2py.gluon.html.LINK.tag
 
5808
web2py.gluon.html.MENU.tag
 
5809
web2py.gluon.html.META.tag
 
5810
web2py.gluon.html.OBJECT.tag
 
5811
web2py.gluon.html.OL.tag
 
5812
web2py.gluon.html.OPTGROUP.tag
 
5813
web2py.gluon.html.OPTION.tag
 
5814
web2py.gluon.html.P.tag
 
5815
web2py.gluon.html.PRE.tag
 
5816
web2py.gluon.html.SCRIPT.tag
 
5817
web2py.gluon.html.SELECT.tag
 
5818
web2py.gluon.html.SPAN.tag
 
5819
web2py.gluon.html.STYLE.tag
 
5820
web2py.gluon.html.TABLE.tag
 
5821
web2py.gluon.html.TBODY.tag
 
5822
web2py.gluon.html.TD.tag
 
5823
web2py.gluon.html.TEXTAREA.tag
 
5824
web2py.gluon.html.TFOOT.tag
 
5825
web2py.gluon.html.TH.tag
 
5826
web2py.gluon.html.THEAD.tag
 
5827
web2py.gluon.html.TITLE.tag
 
5828
web2py.gluon.html.TR.tag
 
5829
web2py.gluon.html.TT.tag
 
5830
web2py.gluon.html.UL.tag
 
5831
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-358', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'textarea'</tt> </tt>
5986
5832
<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
5987
 
<a name="OPTGROUP._fixup"></a><div id="OPTGROUP._fixup-def"><a name="L1630"></a><tt class="py-lineno">1630</tt> <a class="py-toggle" href="#" id="OPTGROUP._fixup-toggle" onclick="return toggle('OPTGROUP._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.OPTGROUP-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5988
 
</div><div id="OPTGROUP._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="OPTGROUP._fixup-expanded"><a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
5989
 
<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
5990
 
<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-372" class="py-name" targets="Class web2py.gluon.html.OPTION=web2py.gluon.html.OPTION-class.html"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-372', 'OPTION', 'link-372');">OPTION</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
5991
 
<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="web2py.gluon.html.DIV.append
5992
 
web2py.gluon.template.BlockNode.append
5993
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-373', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
5994
 
<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
5995
 
<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="web2py.gluon.html.DIV.append
5996
 
web2py.gluon.template.BlockNode.append
5997
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-374', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-375" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-375', 'OPTION', 'link-372');">OPTION</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
5998
 
<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
5999
 
</div></div><a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"> </tt>
6000
 
<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"> </tt>
6001
 
<a name="SELECT"></a><div id="SELECT-def"><a name="L1640"></a><tt class="py-lineno">1640</tt> <a class="py-toggle" href="#" id="SELECT-toggle" onclick="return toggle('SELECT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html">SELECT</a><tt class="py-op">(</tt><tt class="py-base-class">INPUT</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6002
 
</div><div id="SELECT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SELECT-expanded"><a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"> </tt>
6003
 
<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
6004
 
<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
6005
 
<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6006
 
<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; from validators import IS_IN_SET</tt> </tt>
6007
 
<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; SELECT('yes', 'no', _name='selector', value='yes',</tt> </tt>
6008
 
<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"><tt class="py-docstring">        ...    requires=IS_IN_SET(['yes', 'no'])).xml()</tt> </tt>
6009
 
<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;select name=\"selector\"&gt;&lt;option selected=\"selected\" value=\"yes\"&gt;yes&lt;/option&gt;&lt;option value=\"no\"&gt;no&lt;/option&gt;&lt;/select&gt;'</tt> </tt>
6010
 
<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6011
 
<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
6012
 
<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"> </tt>
6013
 
<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">    <tt id="link-376" class="py-name"><a title="web2py.gluon.html.A.tag
6014
 
web2py.gluon.html.B.tag
6015
 
web2py.gluon.html.BEAUTIFY.tag
6016
 
web2py.gluon.html.BODY.tag
6017
 
web2py.gluon.html.BR.tag
6018
 
web2py.gluon.html.BUTTON.tag
6019
 
web2py.gluon.html.CAT.tag
6020
 
web2py.gluon.html.CENTER.tag
6021
 
web2py.gluon.html.COL.tag
6022
 
web2py.gluon.html.COLGROUP.tag
6023
 
web2py.gluon.html.DIV.tag
6024
 
web2py.gluon.html.EM.tag
6025
 
web2py.gluon.html.EMBED.tag
6026
 
web2py.gluon.html.FIELDSET.tag
6027
 
web2py.gluon.html.FORM.tag
6028
 
web2py.gluon.html.H1.tag
6029
 
web2py.gluon.html.H2.tag
6030
 
web2py.gluon.html.H3.tag
6031
 
web2py.gluon.html.H4.tag
6032
 
web2py.gluon.html.H5.tag
6033
 
web2py.gluon.html.H6.tag
6034
 
web2py.gluon.html.HEAD.tag
6035
 
web2py.gluon.html.HR.tag
6036
 
web2py.gluon.html.HTML.tag
6037
 
web2py.gluon.html.I.tag
6038
 
web2py.gluon.html.IFRAME.tag
6039
 
web2py.gluon.html.IMG.tag
6040
 
web2py.gluon.html.INPUT.tag
6041
 
web2py.gluon.html.LABEL.tag
6042
 
web2py.gluon.html.LEGEND.tag
6043
 
web2py.gluon.html.LI.tag
6044
 
web2py.gluon.html.LINK.tag
6045
 
web2py.gluon.html.MENU.tag
6046
 
web2py.gluon.html.META.tag
6047
 
web2py.gluon.html.OBJECT.tag
6048
 
web2py.gluon.html.OL.tag
6049
 
web2py.gluon.html.OPTGROUP.tag
6050
 
web2py.gluon.html.OPTION.tag
6051
 
web2py.gluon.html.P.tag
6052
 
web2py.gluon.html.PRE.tag
6053
 
web2py.gluon.html.SCRIPT.tag
6054
 
web2py.gluon.html.SELECT.tag
6055
 
web2py.gluon.html.SPAN.tag
6056
 
web2py.gluon.html.STYLE.tag
6057
 
web2py.gluon.html.TABLE.tag
6058
 
web2py.gluon.html.TBODY.tag
6059
 
web2py.gluon.html.TD.tag
6060
 
web2py.gluon.html.TEXTAREA.tag
6061
 
web2py.gluon.html.TFOOT.tag
6062
 
web2py.gluon.html.TH.tag
6063
 
web2py.gluon.html.THEAD.tag
6064
 
web2py.gluon.html.TITLE.tag
6065
 
web2py.gluon.html.TR.tag
6066
 
web2py.gluon.html.TT.tag
6067
 
web2py.gluon.html.UL.tag
6068
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-376', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'select'</tt> </tt>
6069
 
<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"> </tt>
6070
 
<a name="SELECT._fixup"></a><div id="SELECT._fixup-def"><a name="L1654"></a><tt class="py-lineno">1654</tt> <a class="py-toggle" href="#" id="SELECT._fixup-toggle" onclick="return toggle('SELECT._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6071
 
</div><div id="SELECT._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SELECT._fixup-expanded"><a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
6072
 
<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
6073
 
<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-377" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-377', 'OPTION', 'link-372');">OPTION</a></tt><tt class="py-op">,</tt> <tt id="link-378" class="py-name" targets="Class web2py.gluon.html.OPTGROUP=web2py.gluon.html.OPTGROUP-class.html"><a title="web2py.gluon.html.OPTGROUP" class="py-name" href="#" onclick="return doclink('link-378', 'OPTGROUP', 'link-378');">OPTGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6074
 
<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="web2py.gluon.html.DIV.append
6075
 
web2py.gluon.template.BlockNode.append
6076
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-379', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
6077
 
<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6078
 
<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="web2py.gluon.html.DIV.append
6079
 
web2py.gluon.template.BlockNode.append
6080
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-380', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-381" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-381', 'OPTION', 'link-372');">OPTION</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6081
 
<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
6082
 
</div><a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"> </tt>
6083
 
<a name="SELECT._postprocessing"></a><div id="SELECT._postprocessing-def"><a name="L1663"></a><tt class="py-lineno">1663</tt> <a class="py-toggle" href="#" id="SELECT._postprocessing-toggle" onclick="return toggle('SELECT._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6084
 
</div><div id="SELECT._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SELECT._postprocessing-expanded"><a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-name">component_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
6085
 
<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
6086
 
<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-382" class="py-name"><a title="web2py.gluon.html.OPTGROUP" class="py-name" href="#" onclick="return doclink('link-382', 'OPTGROUP', 'link-378');">OPTGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6087
 
<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">                <tt class="py-name">component_list</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="web2py.gluon.html.DIV.append
6088
 
web2py.gluon.template.BlockNode.append
6089
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-383', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
6090
 
<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6091
 
<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">                <tt class="py-name">component_list</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="web2py.gluon.html.DIV.append
6092
 
web2py.gluon.template.BlockNode.append
6093
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-384', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
6094
 
<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt id="link-385" class="py-name" targets="Method web2py.gluon.validators.IS_IN_DB.options()=web2py.gluon.validators.IS_IN_DB-class.html#options,Method web2py.gluon.validators.IS_IN_SET.options()=web2py.gluon.validators.IS_IN_SET-class.html#options"><a title="web2py.gluon.validators.IS_IN_DB.options
6095
 
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-385', 'options', 'link-385');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">itertools</tt><tt class="py-op">.</tt><tt class="py-name">chain</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">component_list</tt><tt class="py-op">)</tt> </tt>
6096
 
<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"> </tt>
6097
 
<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
6098
 
<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
6099
 
<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_multiple'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
6100
 
<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-386" class="py-name"><a title="web2py.gluon.validators.IS_IN_DB.options
6101
 
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-386', 'options', 'link-385');">options</a></tt><tt class="py-op">:</tt> <tt class="py-comment"># my patch</tt> </tt>
6102
 
<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6103
 
<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'selected'</tt> </tt>
6104
 
<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6105
 
<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
6106
 
<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6107
 
<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6108
 
<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">                    <tt id="link-387" class="py-name" targets="Method web2py.gluon.rocket.Headers.values()=web2py.gluon.rocket.Headers-class.html#values"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-387', 'values', 'link-387');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
6109
 
<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6110
 
<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">                    <tt id="link-388" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-388', 'values', 'link-387');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
6111
 
<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-389" class="py-name"><a title="web2py.gluon.validators.IS_IN_DB.options
6112
 
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-389', 'options', 'link-385');">options</a></tt><tt class="py-op">:</tt> <tt class="py-comment"># my patch</tt> </tt>
6113
 
<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-390" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-390', 'values', 'link-387');">values</a></tt><tt class="py-op">:</tt> </tt>
6114
 
<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'selected'</tt> </tt>
6115
 
<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6116
 
<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
6117
 
</div></div><a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"> </tt>
6118
 
<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
6119
 
<a name="FIELDSET"></a><div id="FIELDSET-def"><a name="L1692"></a><tt class="py-lineno">1692</tt> <a class="py-toggle" href="#" id="FIELDSET-toggle" onclick="return toggle('FIELDSET');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.FIELDSET-class.html">FIELDSET</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6120
 
</div><div id="FIELDSET-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FIELDSET-expanded"><a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"> </tt>
6121
 
<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">    <tt id="link-391" class="py-name"><a title="web2py.gluon.html.A.tag
6122
 
web2py.gluon.html.B.tag
6123
 
web2py.gluon.html.BEAUTIFY.tag
6124
 
web2py.gluon.html.BODY.tag
6125
 
web2py.gluon.html.BR.tag
6126
 
web2py.gluon.html.BUTTON.tag
6127
 
web2py.gluon.html.CAT.tag
6128
 
web2py.gluon.html.CENTER.tag
6129
 
web2py.gluon.html.COL.tag
6130
 
web2py.gluon.html.COLGROUP.tag
6131
 
web2py.gluon.html.DIV.tag
6132
 
web2py.gluon.html.EM.tag
6133
 
web2py.gluon.html.EMBED.tag
6134
 
web2py.gluon.html.FIELDSET.tag
6135
 
web2py.gluon.html.FORM.tag
6136
 
web2py.gluon.html.H1.tag
6137
 
web2py.gluon.html.H2.tag
6138
 
web2py.gluon.html.H3.tag
6139
 
web2py.gluon.html.H4.tag
6140
 
web2py.gluon.html.H5.tag
6141
 
web2py.gluon.html.H6.tag
6142
 
web2py.gluon.html.HEAD.tag
6143
 
web2py.gluon.html.HR.tag
6144
 
web2py.gluon.html.HTML.tag
6145
 
web2py.gluon.html.I.tag
6146
 
web2py.gluon.html.IFRAME.tag
6147
 
web2py.gluon.html.IMG.tag
6148
 
web2py.gluon.html.INPUT.tag
6149
 
web2py.gluon.html.LABEL.tag
6150
 
web2py.gluon.html.LEGEND.tag
6151
 
web2py.gluon.html.LI.tag
6152
 
web2py.gluon.html.LINK.tag
6153
 
web2py.gluon.html.MENU.tag
6154
 
web2py.gluon.html.META.tag
6155
 
web2py.gluon.html.OBJECT.tag
6156
 
web2py.gluon.html.OL.tag
6157
 
web2py.gluon.html.OPTGROUP.tag
6158
 
web2py.gluon.html.OPTION.tag
6159
 
web2py.gluon.html.P.tag
6160
 
web2py.gluon.html.PRE.tag
6161
 
web2py.gluon.html.SCRIPT.tag
6162
 
web2py.gluon.html.SELECT.tag
6163
 
web2py.gluon.html.SPAN.tag
6164
 
web2py.gluon.html.STYLE.tag
6165
 
web2py.gluon.html.TABLE.tag
6166
 
web2py.gluon.html.TBODY.tag
6167
 
web2py.gluon.html.TD.tag
6168
 
web2py.gluon.html.TEXTAREA.tag
6169
 
web2py.gluon.html.TFOOT.tag
6170
 
web2py.gluon.html.TH.tag
6171
 
web2py.gluon.html.THEAD.tag
6172
 
web2py.gluon.html.TITLE.tag
6173
 
web2py.gluon.html.TR.tag
6174
 
web2py.gluon.html.TT.tag
6175
 
web2py.gluon.html.UL.tag
6176
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-391', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'fieldset'</tt> </tt>
6177
 
</div><a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"> </tt>
6178
 
<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"> </tt>
6179
 
<a name="LEGEND"></a><div id="LEGEND-def"><a name="L1697"></a><tt class="py-lineno">1697</tt> <a class="py-toggle" href="#" id="LEGEND-toggle" onclick="return toggle('LEGEND');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LEGEND-class.html">LEGEND</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6180
 
</div><div id="LEGEND-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LEGEND-expanded"><a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"> </tt>
6181
 
<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">    <tt id="link-392" class="py-name"><a title="web2py.gluon.html.A.tag
6182
 
web2py.gluon.html.B.tag
6183
 
web2py.gluon.html.BEAUTIFY.tag
6184
 
web2py.gluon.html.BODY.tag
6185
 
web2py.gluon.html.BR.tag
6186
 
web2py.gluon.html.BUTTON.tag
6187
 
web2py.gluon.html.CAT.tag
6188
 
web2py.gluon.html.CENTER.tag
6189
 
web2py.gluon.html.COL.tag
6190
 
web2py.gluon.html.COLGROUP.tag
6191
 
web2py.gluon.html.DIV.tag
6192
 
web2py.gluon.html.EM.tag
6193
 
web2py.gluon.html.EMBED.tag
6194
 
web2py.gluon.html.FIELDSET.tag
6195
 
web2py.gluon.html.FORM.tag
6196
 
web2py.gluon.html.H1.tag
6197
 
web2py.gluon.html.H2.tag
6198
 
web2py.gluon.html.H3.tag
6199
 
web2py.gluon.html.H4.tag
6200
 
web2py.gluon.html.H5.tag
6201
 
web2py.gluon.html.H6.tag
6202
 
web2py.gluon.html.HEAD.tag
6203
 
web2py.gluon.html.HR.tag
6204
 
web2py.gluon.html.HTML.tag
6205
 
web2py.gluon.html.I.tag
6206
 
web2py.gluon.html.IFRAME.tag
6207
 
web2py.gluon.html.IMG.tag
6208
 
web2py.gluon.html.INPUT.tag
6209
 
web2py.gluon.html.LABEL.tag
6210
 
web2py.gluon.html.LEGEND.tag
6211
 
web2py.gluon.html.LI.tag
6212
 
web2py.gluon.html.LINK.tag
6213
 
web2py.gluon.html.MENU.tag
6214
 
web2py.gluon.html.META.tag
6215
 
web2py.gluon.html.OBJECT.tag
6216
 
web2py.gluon.html.OL.tag
6217
 
web2py.gluon.html.OPTGROUP.tag
6218
 
web2py.gluon.html.OPTION.tag
6219
 
web2py.gluon.html.P.tag
6220
 
web2py.gluon.html.PRE.tag
6221
 
web2py.gluon.html.SCRIPT.tag
6222
 
web2py.gluon.html.SELECT.tag
6223
 
web2py.gluon.html.SPAN.tag
6224
 
web2py.gluon.html.STYLE.tag
6225
 
web2py.gluon.html.TABLE.tag
6226
 
web2py.gluon.html.TBODY.tag
6227
 
web2py.gluon.html.TD.tag
6228
 
web2py.gluon.html.TEXTAREA.tag
6229
 
web2py.gluon.html.TFOOT.tag
6230
 
web2py.gluon.html.TH.tag
6231
 
web2py.gluon.html.THEAD.tag
6232
 
web2py.gluon.html.TITLE.tag
6233
 
web2py.gluon.html.TR.tag
6234
 
web2py.gluon.html.TT.tag
6235
 
web2py.gluon.html.UL.tag
6236
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-392', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'legend'</tt> </tt>
6237
 
</div><a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"> </tt>
6238
 
<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"> </tt>
6239
 
<a name="FORM"></a><div id="FORM-def"><a name="L1702"></a><tt class="py-lineno">1702</tt> <a class="py-toggle" href="#" id="FORM-toggle" onclick="return toggle('FORM');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html">FORM</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6240
 
</div><div id="FORM-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FORM-expanded"><a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"> </tt>
6241
 
<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
6242
 
<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
6243
 
<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6244
 
<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; from validators import IS_NOT_EMPTY</tt> </tt>
6245
 
<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; form=FORM(INPUT(_name=\"test\", requires=IS_NOT_EMPTY()))</tt> </tt>
6246
 
<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; form.xml()</tt> </tt>
6247
 
<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"test\" type=\"text\" /&gt;&lt;/form&gt;'</tt> </tt>
6248
 
<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6249
 
<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-docstring">    a FORM is container for INPUT, TEXTAREA, SELECT and other helpers</tt> </tt>
6250
 
<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6251
 
<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-docstring">    form has one important method::</tt> </tt>
6252
 
<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6253
 
<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-docstring">        form.accepts(request.vars, session)</tt> </tt>
6254
 
<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6255
 
<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"><tt class="py-docstring">    if form is accepted (and all validators pass) form.vars contains the</tt> </tt>
6256
 
<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"><tt class="py-docstring">    accepted vars, otherwise form.errors contains the errors.</tt> </tt>
6257
 
<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"><tt class="py-docstring">    in case of errors the form is modified to present the errors to the user.</tt> </tt>
6258
 
<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
6259
 
<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"> </tt>
6260
 
<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">    <tt id="link-393" class="py-name"><a title="web2py.gluon.html.A.tag
6261
 
web2py.gluon.html.B.tag
6262
 
web2py.gluon.html.BEAUTIFY.tag
6263
 
web2py.gluon.html.BODY.tag
6264
 
web2py.gluon.html.BR.tag
6265
 
web2py.gluon.html.BUTTON.tag
6266
 
web2py.gluon.html.CAT.tag
6267
 
web2py.gluon.html.CENTER.tag
6268
 
web2py.gluon.html.COL.tag
6269
 
web2py.gluon.html.COLGROUP.tag
6270
 
web2py.gluon.html.DIV.tag
6271
 
web2py.gluon.html.EM.tag
6272
 
web2py.gluon.html.EMBED.tag
6273
 
web2py.gluon.html.FIELDSET.tag
6274
 
web2py.gluon.html.FORM.tag
6275
 
web2py.gluon.html.H1.tag
6276
 
web2py.gluon.html.H2.tag
6277
 
web2py.gluon.html.H3.tag
6278
 
web2py.gluon.html.H4.tag
6279
 
web2py.gluon.html.H5.tag
6280
 
web2py.gluon.html.H6.tag
6281
 
web2py.gluon.html.HEAD.tag
6282
 
web2py.gluon.html.HR.tag
6283
 
web2py.gluon.html.HTML.tag
6284
 
web2py.gluon.html.I.tag
6285
 
web2py.gluon.html.IFRAME.tag
6286
 
web2py.gluon.html.IMG.tag
6287
 
web2py.gluon.html.INPUT.tag
6288
 
web2py.gluon.html.LABEL.tag
6289
 
web2py.gluon.html.LEGEND.tag
6290
 
web2py.gluon.html.LI.tag
6291
 
web2py.gluon.html.LINK.tag
6292
 
web2py.gluon.html.MENU.tag
6293
 
web2py.gluon.html.META.tag
6294
 
web2py.gluon.html.OBJECT.tag
6295
 
web2py.gluon.html.OL.tag
6296
 
web2py.gluon.html.OPTGROUP.tag
6297
 
web2py.gluon.html.OPTION.tag
6298
 
web2py.gluon.html.P.tag
6299
 
web2py.gluon.html.PRE.tag
6300
 
web2py.gluon.html.SCRIPT.tag
6301
 
web2py.gluon.html.SELECT.tag
6302
 
web2py.gluon.html.SPAN.tag
6303
 
web2py.gluon.html.STYLE.tag
6304
 
web2py.gluon.html.TABLE.tag
6305
 
web2py.gluon.html.TBODY.tag
6306
 
web2py.gluon.html.TD.tag
6307
 
web2py.gluon.html.TEXTAREA.tag
6308
 
web2py.gluon.html.TFOOT.tag
6309
 
web2py.gluon.html.TH.tag
6310
 
web2py.gluon.html.THEAD.tag
6311
 
web2py.gluon.html.TITLE.tag
6312
 
web2py.gluon.html.TR.tag
6313
 
web2py.gluon.html.TT.tag
6314
 
web2py.gluon.html.UL.tag
6315
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-393', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'form'</tt> </tt>
 
5833
<a name="TEXTAREA._postprocessing"></a><div id="TEXTAREA._postprocessing-def"><a name="L1630"></a><tt class="py-lineno">1630</tt> <a class="py-toggle" href="#" id="TEXTAREA._postprocessing-toggle" onclick="return toggle('TEXTAREA._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.TEXTAREA-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5834
</div><div id="TEXTAREA._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TEXTAREA._postprocessing-expanded"><a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_rows'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
5835
<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_rows'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">10</tt> </tt>
 
5836
<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_cols'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
5837
<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_cols'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">40</tt> </tt>
 
5838
<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
5839
<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
 
5840
<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
5841
<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
5842
</div></div><a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"> </tt>
 
5843
<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"> </tt>
 
5844
<a name="OPTION"></a><div id="OPTION-def"><a name="L1641"></a><tt class="py-lineno">1641</tt> <a class="py-toggle" href="#" id="OPTION-toggle" onclick="return toggle('OPTION');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OPTION-class.html">OPTION</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5845
</div><div id="OPTION-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OPTION-expanded"><a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"> </tt>
 
5846
<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">    <tt id="link-359" class="py-name"><a title="web2py.gluon.html.A.tag
 
5847
web2py.gluon.html.B.tag
 
5848
web2py.gluon.html.BEAUTIFY.tag
 
5849
web2py.gluon.html.BODY.tag
 
5850
web2py.gluon.html.BR.tag
 
5851
web2py.gluon.html.BUTTON.tag
 
5852
web2py.gluon.html.CAT.tag
 
5853
web2py.gluon.html.CENTER.tag
 
5854
web2py.gluon.html.COL.tag
 
5855
web2py.gluon.html.COLGROUP.tag
 
5856
web2py.gluon.html.DIV.tag
 
5857
web2py.gluon.html.EM.tag
 
5858
web2py.gluon.html.EMBED.tag
 
5859
web2py.gluon.html.FIELDSET.tag
 
5860
web2py.gluon.html.FORM.tag
 
5861
web2py.gluon.html.H1.tag
 
5862
web2py.gluon.html.H2.tag
 
5863
web2py.gluon.html.H3.tag
 
5864
web2py.gluon.html.H4.tag
 
5865
web2py.gluon.html.H5.tag
 
5866
web2py.gluon.html.H6.tag
 
5867
web2py.gluon.html.HEAD.tag
 
5868
web2py.gluon.html.HR.tag
 
5869
web2py.gluon.html.HTML.tag
 
5870
web2py.gluon.html.I.tag
 
5871
web2py.gluon.html.IFRAME.tag
 
5872
web2py.gluon.html.IMG.tag
 
5873
web2py.gluon.html.INPUT.tag
 
5874
web2py.gluon.html.LABEL.tag
 
5875
web2py.gluon.html.LEGEND.tag
 
5876
web2py.gluon.html.LI.tag
 
5877
web2py.gluon.html.LINK.tag
 
5878
web2py.gluon.html.MENU.tag
 
5879
web2py.gluon.html.META.tag
 
5880
web2py.gluon.html.OBJECT.tag
 
5881
web2py.gluon.html.OL.tag
 
5882
web2py.gluon.html.OPTGROUP.tag
 
5883
web2py.gluon.html.OPTION.tag
 
5884
web2py.gluon.html.P.tag
 
5885
web2py.gluon.html.PRE.tag
 
5886
web2py.gluon.html.SCRIPT.tag
 
5887
web2py.gluon.html.SELECT.tag
 
5888
web2py.gluon.html.SPAN.tag
 
5889
web2py.gluon.html.STYLE.tag
 
5890
web2py.gluon.html.TABLE.tag
 
5891
web2py.gluon.html.TBODY.tag
 
5892
web2py.gluon.html.TD.tag
 
5893
web2py.gluon.html.TEXTAREA.tag
 
5894
web2py.gluon.html.TFOOT.tag
 
5895
web2py.gluon.html.TH.tag
 
5896
web2py.gluon.html.THEAD.tag
 
5897
web2py.gluon.html.TITLE.tag
 
5898
web2py.gluon.html.TR.tag
 
5899
web2py.gluon.html.TT.tag
 
5900
web2py.gluon.html.UL.tag
 
5901
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-359', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'option'</tt> </tt>
 
5902
<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"> </tt>
 
5903
<a name="OPTION._fixup"></a><div id="OPTION._fixup-def"><a name="L1645"></a><tt class="py-lineno">1645</tt> <a class="py-toggle" href="#" id="OPTION._fixup-toggle" onclick="return toggle('OPTION._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.OPTION-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5904
</div><div id="OPTION._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="OPTION._fixup-expanded"><a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_value'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
5905
<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
5906
</div></div><a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"> </tt>
 
5907
<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"> </tt>
 
5908
<a name="OBJECT"></a><div id="OBJECT-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="OBJECT-toggle" onclick="return toggle('OBJECT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OBJECT-class.html">OBJECT</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5909
</div><div id="OBJECT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OBJECT-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"> </tt>
 
5910
<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">    <tt id="link-360" class="py-name"><a title="web2py.gluon.html.A.tag
 
5911
web2py.gluon.html.B.tag
 
5912
web2py.gluon.html.BEAUTIFY.tag
 
5913
web2py.gluon.html.BODY.tag
 
5914
web2py.gluon.html.BR.tag
 
5915
web2py.gluon.html.BUTTON.tag
 
5916
web2py.gluon.html.CAT.tag
 
5917
web2py.gluon.html.CENTER.tag
 
5918
web2py.gluon.html.COL.tag
 
5919
web2py.gluon.html.COLGROUP.tag
 
5920
web2py.gluon.html.DIV.tag
 
5921
web2py.gluon.html.EM.tag
 
5922
web2py.gluon.html.EMBED.tag
 
5923
web2py.gluon.html.FIELDSET.tag
 
5924
web2py.gluon.html.FORM.tag
 
5925
web2py.gluon.html.H1.tag
 
5926
web2py.gluon.html.H2.tag
 
5927
web2py.gluon.html.H3.tag
 
5928
web2py.gluon.html.H4.tag
 
5929
web2py.gluon.html.H5.tag
 
5930
web2py.gluon.html.H6.tag
 
5931
web2py.gluon.html.HEAD.tag
 
5932
web2py.gluon.html.HR.tag
 
5933
web2py.gluon.html.HTML.tag
 
5934
web2py.gluon.html.I.tag
 
5935
web2py.gluon.html.IFRAME.tag
 
5936
web2py.gluon.html.IMG.tag
 
5937
web2py.gluon.html.INPUT.tag
 
5938
web2py.gluon.html.LABEL.tag
 
5939
web2py.gluon.html.LEGEND.tag
 
5940
web2py.gluon.html.LI.tag
 
5941
web2py.gluon.html.LINK.tag
 
5942
web2py.gluon.html.MENU.tag
 
5943
web2py.gluon.html.META.tag
 
5944
web2py.gluon.html.OBJECT.tag
 
5945
web2py.gluon.html.OL.tag
 
5946
web2py.gluon.html.OPTGROUP.tag
 
5947
web2py.gluon.html.OPTION.tag
 
5948
web2py.gluon.html.P.tag
 
5949
web2py.gluon.html.PRE.tag
 
5950
web2py.gluon.html.SCRIPT.tag
 
5951
web2py.gluon.html.SELECT.tag
 
5952
web2py.gluon.html.SPAN.tag
 
5953
web2py.gluon.html.STYLE.tag
 
5954
web2py.gluon.html.TABLE.tag
 
5955
web2py.gluon.html.TBODY.tag
 
5956
web2py.gluon.html.TD.tag
 
5957
web2py.gluon.html.TEXTAREA.tag
 
5958
web2py.gluon.html.TFOOT.tag
 
5959
web2py.gluon.html.TH.tag
 
5960
web2py.gluon.html.THEAD.tag
 
5961
web2py.gluon.html.TITLE.tag
 
5962
web2py.gluon.html.TR.tag
 
5963
web2py.gluon.html.TT.tag
 
5964
web2py.gluon.html.UL.tag
 
5965
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-360', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'object'</tt> </tt>
 
5966
</div><a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"> </tt>
 
5967
<a name="OPTGROUP"></a><div id="OPTGROUP-def"><a name="L1654"></a><tt class="py-lineno">1654</tt> <a class="py-toggle" href="#" id="OPTGROUP-toggle" onclick="return toggle('OPTGROUP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.OPTGROUP-class.html">OPTGROUP</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
5968
</div><div id="OPTGROUP-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OPTGROUP-expanded"><a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"> </tt>
 
5969
<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">    <tt id="link-361" class="py-name"><a title="web2py.gluon.html.A.tag
 
5970
web2py.gluon.html.B.tag
 
5971
web2py.gluon.html.BEAUTIFY.tag
 
5972
web2py.gluon.html.BODY.tag
 
5973
web2py.gluon.html.BR.tag
 
5974
web2py.gluon.html.BUTTON.tag
 
5975
web2py.gluon.html.CAT.tag
 
5976
web2py.gluon.html.CENTER.tag
 
5977
web2py.gluon.html.COL.tag
 
5978
web2py.gluon.html.COLGROUP.tag
 
5979
web2py.gluon.html.DIV.tag
 
5980
web2py.gluon.html.EM.tag
 
5981
web2py.gluon.html.EMBED.tag
 
5982
web2py.gluon.html.FIELDSET.tag
 
5983
web2py.gluon.html.FORM.tag
 
5984
web2py.gluon.html.H1.tag
 
5985
web2py.gluon.html.H2.tag
 
5986
web2py.gluon.html.H3.tag
 
5987
web2py.gluon.html.H4.tag
 
5988
web2py.gluon.html.H5.tag
 
5989
web2py.gluon.html.H6.tag
 
5990
web2py.gluon.html.HEAD.tag
 
5991
web2py.gluon.html.HR.tag
 
5992
web2py.gluon.html.HTML.tag
 
5993
web2py.gluon.html.I.tag
 
5994
web2py.gluon.html.IFRAME.tag
 
5995
web2py.gluon.html.IMG.tag
 
5996
web2py.gluon.html.INPUT.tag
 
5997
web2py.gluon.html.LABEL.tag
 
5998
web2py.gluon.html.LEGEND.tag
 
5999
web2py.gluon.html.LI.tag
 
6000
web2py.gluon.html.LINK.tag
 
6001
web2py.gluon.html.MENU.tag
 
6002
web2py.gluon.html.META.tag
 
6003
web2py.gluon.html.OBJECT.tag
 
6004
web2py.gluon.html.OL.tag
 
6005
web2py.gluon.html.OPTGROUP.tag
 
6006
web2py.gluon.html.OPTION.tag
 
6007
web2py.gluon.html.P.tag
 
6008
web2py.gluon.html.PRE.tag
 
6009
web2py.gluon.html.SCRIPT.tag
 
6010
web2py.gluon.html.SELECT.tag
 
6011
web2py.gluon.html.SPAN.tag
 
6012
web2py.gluon.html.STYLE.tag
 
6013
web2py.gluon.html.TABLE.tag
 
6014
web2py.gluon.html.TBODY.tag
 
6015
web2py.gluon.html.TD.tag
 
6016
web2py.gluon.html.TEXTAREA.tag
 
6017
web2py.gluon.html.TFOOT.tag
 
6018
web2py.gluon.html.TH.tag
 
6019
web2py.gluon.html.THEAD.tag
 
6020
web2py.gluon.html.TITLE.tag
 
6021
web2py.gluon.html.TR.tag
 
6022
web2py.gluon.html.TT.tag
 
6023
web2py.gluon.html.UL.tag
 
6024
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-361', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'optgroup'</tt> </tt>
 
6025
<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"> </tt>
 
6026
<a name="OPTGROUP._fixup"></a><div id="OPTGROUP._fixup-def"><a name="L1658"></a><tt class="py-lineno">1658</tt> <a class="py-toggle" href="#" id="OPTGROUP._fixup-toggle" onclick="return toggle('OPTGROUP._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.OPTGROUP-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6027
</div><div id="OPTGROUP._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="OPTGROUP._fixup-expanded"><a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6028
<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
6029
<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-362" class="py-name" targets="Class web2py.gluon.html.OPTION=web2py.gluon.html.OPTION-class.html"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-362', 'OPTION', 'link-362');">OPTION</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6030
<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6031
web2py.gluon.template.BlockNode.append
 
6032
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-363', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
6033
<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6034
<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-364" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6035
web2py.gluon.template.BlockNode.append
 
6036
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-364', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-365" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-365', 'OPTION', 'link-362');">OPTION</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6037
<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
 
6038
</div></div><a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"> </tt>
 
6039
<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
 
6040
<a name="SELECT"></a><div id="SELECT-def"><a name="L1668"></a><tt class="py-lineno">1668</tt> <a class="py-toggle" href="#" id="SELECT-toggle" onclick="return toggle('SELECT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html">SELECT</a><tt class="py-op">(</tt><tt class="py-base-class">INPUT</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6041
</div><div id="SELECT-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SELECT-expanded"><a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt>
 
6042
<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
6043
<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
6044
<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6045
<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; from validators import IS_IN_SET</tt> </tt>
 
6046
<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; SELECT('yes', 'no', _name='selector', value='yes',</tt> </tt>
 
6047
<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"><tt class="py-docstring">        ...    requires=IS_IN_SET(['yes', 'no'])).xml()</tt> </tt>
 
6048
<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;select name=\"selector\"&gt;&lt;option selected=\"selected\" value=\"yes\"&gt;yes&lt;/option&gt;&lt;option value=\"no\"&gt;no&lt;/option&gt;&lt;/select&gt;'</tt> </tt>
 
6049
<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6050
<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
6051
<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"> </tt>
 
6052
<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">    <tt id="link-366" class="py-name"><a title="web2py.gluon.html.A.tag
 
6053
web2py.gluon.html.B.tag
 
6054
web2py.gluon.html.BEAUTIFY.tag
 
6055
web2py.gluon.html.BODY.tag
 
6056
web2py.gluon.html.BR.tag
 
6057
web2py.gluon.html.BUTTON.tag
 
6058
web2py.gluon.html.CAT.tag
 
6059
web2py.gluon.html.CENTER.tag
 
6060
web2py.gluon.html.COL.tag
 
6061
web2py.gluon.html.COLGROUP.tag
 
6062
web2py.gluon.html.DIV.tag
 
6063
web2py.gluon.html.EM.tag
 
6064
web2py.gluon.html.EMBED.tag
 
6065
web2py.gluon.html.FIELDSET.tag
 
6066
web2py.gluon.html.FORM.tag
 
6067
web2py.gluon.html.H1.tag
 
6068
web2py.gluon.html.H2.tag
 
6069
web2py.gluon.html.H3.tag
 
6070
web2py.gluon.html.H4.tag
 
6071
web2py.gluon.html.H5.tag
 
6072
web2py.gluon.html.H6.tag
 
6073
web2py.gluon.html.HEAD.tag
 
6074
web2py.gluon.html.HR.tag
 
6075
web2py.gluon.html.HTML.tag
 
6076
web2py.gluon.html.I.tag
 
6077
web2py.gluon.html.IFRAME.tag
 
6078
web2py.gluon.html.IMG.tag
 
6079
web2py.gluon.html.INPUT.tag
 
6080
web2py.gluon.html.LABEL.tag
 
6081
web2py.gluon.html.LEGEND.tag
 
6082
web2py.gluon.html.LI.tag
 
6083
web2py.gluon.html.LINK.tag
 
6084
web2py.gluon.html.MENU.tag
 
6085
web2py.gluon.html.META.tag
 
6086
web2py.gluon.html.OBJECT.tag
 
6087
web2py.gluon.html.OL.tag
 
6088
web2py.gluon.html.OPTGROUP.tag
 
6089
web2py.gluon.html.OPTION.tag
 
6090
web2py.gluon.html.P.tag
 
6091
web2py.gluon.html.PRE.tag
 
6092
web2py.gluon.html.SCRIPT.tag
 
6093
web2py.gluon.html.SELECT.tag
 
6094
web2py.gluon.html.SPAN.tag
 
6095
web2py.gluon.html.STYLE.tag
 
6096
web2py.gluon.html.TABLE.tag
 
6097
web2py.gluon.html.TBODY.tag
 
6098
web2py.gluon.html.TD.tag
 
6099
web2py.gluon.html.TEXTAREA.tag
 
6100
web2py.gluon.html.TFOOT.tag
 
6101
web2py.gluon.html.TH.tag
 
6102
web2py.gluon.html.THEAD.tag
 
6103
web2py.gluon.html.TITLE.tag
 
6104
web2py.gluon.html.TR.tag
 
6105
web2py.gluon.html.TT.tag
 
6106
web2py.gluon.html.UL.tag
 
6107
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-366', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'select'</tt> </tt>
 
6108
<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
 
6109
<a name="SELECT._fixup"></a><div id="SELECT._fixup-def"><a name="L1682"></a><tt class="py-lineno">1682</tt> <a class="py-toggle" href="#" id="SELECT._fixup-toggle" onclick="return toggle('SELECT._fixup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html#_fixup">_fixup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6110
</div><div id="SELECT._fixup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SELECT._fixup-expanded"><a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6111
<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
6112
<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-367" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-367', 'OPTION', 'link-362');">OPTION</a></tt><tt class="py-op">,</tt> <tt id="link-368" class="py-name" targets="Class web2py.gluon.html.OPTGROUP=web2py.gluon.html.OPTGROUP-class.html"><a title="web2py.gluon.html.OPTGROUP" class="py-name" href="#" onclick="return doclink('link-368', 'OPTGROUP', 'link-368');">OPTGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6113
<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6114
web2py.gluon.template.BlockNode.append
 
6115
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-369', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
6116
<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6117
<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6118
web2py.gluon.template.BlockNode.append
 
6119
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-370', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-371" class="py-name"><a title="web2py.gluon.html.OPTION" class="py-name" href="#" onclick="return doclink('link-371', 'OPTION', 'link-362');">OPTION</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6120
<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
 
6121
</div><a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"> </tt>
 
6122
<a name="SELECT._postprocessing"></a><div id="SELECT._postprocessing-def"><a name="L1691"></a><tt class="py-lineno">1691</tt> <a class="py-toggle" href="#" id="SELECT._postprocessing-toggle" onclick="return toggle('SELECT._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.SELECT-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6123
</div><div id="SELECT._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SELECT._postprocessing-expanded"><a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">component_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6124
<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
6125
<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-372" class="py-name"><a title="web2py.gluon.html.OPTGROUP" class="py-name" href="#" onclick="return doclink('link-372', 'OPTGROUP', 'link-368');">OPTGROUP</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6126
<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">                <tt class="py-name">component_list</tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6127
web2py.gluon.template.BlockNode.append
 
6128
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-373', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">)</tt> </tt>
 
6129
<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6130
<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">                <tt class="py-name">component_list</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6131
web2py.gluon.template.BlockNode.append
 
6132
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-374', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
6133
<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-375" class="py-name" targets="Method web2py.gluon.validators.IS_IN_DB.options()=web2py.gluon.validators.IS_IN_DB-class.html#options,Method web2py.gluon.validators.IS_IN_SET.options()=web2py.gluon.validators.IS_IN_SET-class.html#options"><a title="web2py.gluon.validators.IS_IN_DB.options
 
6134
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-375', 'options', 'link-375');">options</a></tt> <tt class="py-op">=</tt> <tt class="py-name">itertools</tt><tt class="py-op">.</tt><tt class="py-name">chain</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">component_list</tt><tt class="py-op">)</tt> </tt>
 
6135
<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"> </tt>
 
6136
<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line">        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'value'</tt><tt class="py-op">]</tt> </tt>
 
6137
<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
6138
<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_multiple'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
6139
<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-376" class="py-name"><a title="web2py.gluon.validators.IS_IN_DB.options
 
6140
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-376', 'options', 'link-375');">options</a></tt><tt class="py-op">:</tt> <tt class="py-comment"># my patch</tt> </tt>
 
6141
<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6142
<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'selected'</tt> </tt>
 
6143
<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6144
<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
6145
<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6146
<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt><tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6147
<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">                    <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
 
6148
<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6149
<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">                    <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
 
6150
<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-377" class="py-name"><a title="web2py.gluon.validators.IS_IN_DB.options
 
6151
web2py.gluon.validators.IS_IN_SET.options" class="py-name" href="#" onclick="return doclink('link-377', 'options', 'link-375');">options</a></tt><tt class="py-op">:</tt> <tt class="py-comment"># my patch</tt> </tt>
 
6152
<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">and</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
 
6153
<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'selected'</tt> </tt>
 
6154
<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6155
<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">                        <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'_selected'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
6156
</div></div><a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"> </tt>
 
6157
<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"> </tt>
 
6158
<a name="FIELDSET"></a><div id="FIELDSET-def"><a name="L1720"></a><tt class="py-lineno">1720</tt> <a class="py-toggle" href="#" id="FIELDSET-toggle" onclick="return toggle('FIELDSET');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.FIELDSET-class.html">FIELDSET</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6159
</div><div id="FIELDSET-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FIELDSET-expanded"><a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"> </tt>
 
6160
<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">    <tt id="link-378" class="py-name"><a title="web2py.gluon.html.A.tag
 
6161
web2py.gluon.html.B.tag
 
6162
web2py.gluon.html.BEAUTIFY.tag
 
6163
web2py.gluon.html.BODY.tag
 
6164
web2py.gluon.html.BR.tag
 
6165
web2py.gluon.html.BUTTON.tag
 
6166
web2py.gluon.html.CAT.tag
 
6167
web2py.gluon.html.CENTER.tag
 
6168
web2py.gluon.html.COL.tag
 
6169
web2py.gluon.html.COLGROUP.tag
 
6170
web2py.gluon.html.DIV.tag
 
6171
web2py.gluon.html.EM.tag
 
6172
web2py.gluon.html.EMBED.tag
 
6173
web2py.gluon.html.FIELDSET.tag
 
6174
web2py.gluon.html.FORM.tag
 
6175
web2py.gluon.html.H1.tag
 
6176
web2py.gluon.html.H2.tag
 
6177
web2py.gluon.html.H3.tag
 
6178
web2py.gluon.html.H4.tag
 
6179
web2py.gluon.html.H5.tag
 
6180
web2py.gluon.html.H6.tag
 
6181
web2py.gluon.html.HEAD.tag
 
6182
web2py.gluon.html.HR.tag
 
6183
web2py.gluon.html.HTML.tag
 
6184
web2py.gluon.html.I.tag
 
6185
web2py.gluon.html.IFRAME.tag
 
6186
web2py.gluon.html.IMG.tag
 
6187
web2py.gluon.html.INPUT.tag
 
6188
web2py.gluon.html.LABEL.tag
 
6189
web2py.gluon.html.LEGEND.tag
 
6190
web2py.gluon.html.LI.tag
 
6191
web2py.gluon.html.LINK.tag
 
6192
web2py.gluon.html.MENU.tag
 
6193
web2py.gluon.html.META.tag
 
6194
web2py.gluon.html.OBJECT.tag
 
6195
web2py.gluon.html.OL.tag
 
6196
web2py.gluon.html.OPTGROUP.tag
 
6197
web2py.gluon.html.OPTION.tag
 
6198
web2py.gluon.html.P.tag
 
6199
web2py.gluon.html.PRE.tag
 
6200
web2py.gluon.html.SCRIPT.tag
 
6201
web2py.gluon.html.SELECT.tag
 
6202
web2py.gluon.html.SPAN.tag
 
6203
web2py.gluon.html.STYLE.tag
 
6204
web2py.gluon.html.TABLE.tag
 
6205
web2py.gluon.html.TBODY.tag
 
6206
web2py.gluon.html.TD.tag
 
6207
web2py.gluon.html.TEXTAREA.tag
 
6208
web2py.gluon.html.TFOOT.tag
 
6209
web2py.gluon.html.TH.tag
 
6210
web2py.gluon.html.THEAD.tag
 
6211
web2py.gluon.html.TITLE.tag
 
6212
web2py.gluon.html.TR.tag
 
6213
web2py.gluon.html.TT.tag
 
6214
web2py.gluon.html.UL.tag
 
6215
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-378', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'fieldset'</tt> </tt>
 
6216
</div><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"> </tt>
6316
6217
<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"> </tt>
6317
 
<a name="FORM.__init__"></a><div id="FORM.__init__-def"><a name="L1725"></a><tt class="py-lineno">1725</tt> <a class="py-toggle" href="#" id="FORM.__init__-toggle" onclick="return toggle('FORM.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6318
 
</div><div id="FORM.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.__init__-expanded"><a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt id="link-394" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
6218
<a name="LEGEND"></a><div id="LEGEND-def"><a name="L1725"></a><tt class="py-lineno">1725</tt> <a class="py-toggle" href="#" id="LEGEND-toggle" onclick="return toggle('LEGEND');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.LEGEND-class.html">LEGEND</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6219
</div><div id="LEGEND-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="LEGEND-expanded"><a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"> </tt>
 
6220
<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">    <tt id="link-379" class="py-name"><a title="web2py.gluon.html.A.tag
 
6221
web2py.gluon.html.B.tag
 
6222
web2py.gluon.html.BEAUTIFY.tag
 
6223
web2py.gluon.html.BODY.tag
 
6224
web2py.gluon.html.BR.tag
 
6225
web2py.gluon.html.BUTTON.tag
 
6226
web2py.gluon.html.CAT.tag
 
6227
web2py.gluon.html.CENTER.tag
 
6228
web2py.gluon.html.COL.tag
 
6229
web2py.gluon.html.COLGROUP.tag
 
6230
web2py.gluon.html.DIV.tag
 
6231
web2py.gluon.html.EM.tag
 
6232
web2py.gluon.html.EMBED.tag
 
6233
web2py.gluon.html.FIELDSET.tag
 
6234
web2py.gluon.html.FORM.tag
 
6235
web2py.gluon.html.H1.tag
 
6236
web2py.gluon.html.H2.tag
 
6237
web2py.gluon.html.H3.tag
 
6238
web2py.gluon.html.H4.tag
 
6239
web2py.gluon.html.H5.tag
 
6240
web2py.gluon.html.H6.tag
 
6241
web2py.gluon.html.HEAD.tag
 
6242
web2py.gluon.html.HR.tag
 
6243
web2py.gluon.html.HTML.tag
 
6244
web2py.gluon.html.I.tag
 
6245
web2py.gluon.html.IFRAME.tag
 
6246
web2py.gluon.html.IMG.tag
 
6247
web2py.gluon.html.INPUT.tag
 
6248
web2py.gluon.html.LABEL.tag
 
6249
web2py.gluon.html.LEGEND.tag
 
6250
web2py.gluon.html.LI.tag
 
6251
web2py.gluon.html.LINK.tag
 
6252
web2py.gluon.html.MENU.tag
 
6253
web2py.gluon.html.META.tag
 
6254
web2py.gluon.html.OBJECT.tag
 
6255
web2py.gluon.html.OL.tag
 
6256
web2py.gluon.html.OPTGROUP.tag
 
6257
web2py.gluon.html.OPTION.tag
 
6258
web2py.gluon.html.P.tag
 
6259
web2py.gluon.html.PRE.tag
 
6260
web2py.gluon.html.SCRIPT.tag
 
6261
web2py.gluon.html.SELECT.tag
 
6262
web2py.gluon.html.SPAN.tag
 
6263
web2py.gluon.html.STYLE.tag
 
6264
web2py.gluon.html.TABLE.tag
 
6265
web2py.gluon.html.TBODY.tag
 
6266
web2py.gluon.html.TD.tag
 
6267
web2py.gluon.html.TEXTAREA.tag
 
6268
web2py.gluon.html.TFOOT.tag
 
6269
web2py.gluon.html.TH.tag
 
6270
web2py.gluon.html.THEAD.tag
 
6271
web2py.gluon.html.TITLE.tag
 
6272
web2py.gluon.html.TR.tag
 
6273
web2py.gluon.html.TT.tag
 
6274
web2py.gluon.html.UL.tag
 
6275
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-379', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'legend'</tt> </tt>
 
6276
</div><a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"> </tt>
 
6277
<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"> </tt>
 
6278
<a name="FORM"></a><div id="FORM-def"><a name="L1730"></a><tt class="py-lineno">1730</tt> <a class="py-toggle" href="#" id="FORM-toggle" onclick="return toggle('FORM');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html">FORM</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6279
</div><div id="FORM-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="FORM-expanded"><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"> </tt>
 
6280
<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
6281
<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
6282
<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6283
<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; from validators import IS_NOT_EMPTY</tt> </tt>
 
6284
<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; form=FORM(INPUT(_name=\"test\", requires=IS_NOT_EMPTY()))</tt> </tt>
 
6285
<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; form.xml()</tt> </tt>
 
6286
<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"test\" type=\"text\" /&gt;&lt;/form&gt;'</tt> </tt>
 
6287
<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6288
<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"><tt class="py-docstring">    a FORM is container for INPUT, TEXTAREA, SELECT and other helpers</tt> </tt>
 
6289
<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6290
<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"><tt class="py-docstring">    form has one important method::</tt> </tt>
 
6291
<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6292
<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line"><tt class="py-docstring">        form.accepts(request.vars, session)</tt> </tt>
 
6293
<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6294
<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"><tt class="py-docstring">    if form is accepted (and all validators pass) form.vars contains the</tt> </tt>
 
6295
<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"><tt class="py-docstring">    accepted vars, otherwise form.errors contains the errors.</tt> </tt>
 
6296
<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"><tt class="py-docstring">    in case of errors the form is modified to present the errors to the user.</tt> </tt>
 
6297
<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
6298
<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"> </tt>
 
6299
<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">    <tt id="link-380" class="py-name"><a title="web2py.gluon.html.A.tag
 
6300
web2py.gluon.html.B.tag
 
6301
web2py.gluon.html.BEAUTIFY.tag
 
6302
web2py.gluon.html.BODY.tag
 
6303
web2py.gluon.html.BR.tag
 
6304
web2py.gluon.html.BUTTON.tag
 
6305
web2py.gluon.html.CAT.tag
 
6306
web2py.gluon.html.CENTER.tag
 
6307
web2py.gluon.html.COL.tag
 
6308
web2py.gluon.html.COLGROUP.tag
 
6309
web2py.gluon.html.DIV.tag
 
6310
web2py.gluon.html.EM.tag
 
6311
web2py.gluon.html.EMBED.tag
 
6312
web2py.gluon.html.FIELDSET.tag
 
6313
web2py.gluon.html.FORM.tag
 
6314
web2py.gluon.html.H1.tag
 
6315
web2py.gluon.html.H2.tag
 
6316
web2py.gluon.html.H3.tag
 
6317
web2py.gluon.html.H4.tag
 
6318
web2py.gluon.html.H5.tag
 
6319
web2py.gluon.html.H6.tag
 
6320
web2py.gluon.html.HEAD.tag
 
6321
web2py.gluon.html.HR.tag
 
6322
web2py.gluon.html.HTML.tag
 
6323
web2py.gluon.html.I.tag
 
6324
web2py.gluon.html.IFRAME.tag
 
6325
web2py.gluon.html.IMG.tag
 
6326
web2py.gluon.html.INPUT.tag
 
6327
web2py.gluon.html.LABEL.tag
 
6328
web2py.gluon.html.LEGEND.tag
 
6329
web2py.gluon.html.LI.tag
 
6330
web2py.gluon.html.LINK.tag
 
6331
web2py.gluon.html.MENU.tag
 
6332
web2py.gluon.html.META.tag
 
6333
web2py.gluon.html.OBJECT.tag
 
6334
web2py.gluon.html.OL.tag
 
6335
web2py.gluon.html.OPTGROUP.tag
 
6336
web2py.gluon.html.OPTION.tag
 
6337
web2py.gluon.html.P.tag
 
6338
web2py.gluon.html.PRE.tag
 
6339
web2py.gluon.html.SCRIPT.tag
 
6340
web2py.gluon.html.SELECT.tag
 
6341
web2py.gluon.html.SPAN.tag
 
6342
web2py.gluon.html.STYLE.tag
 
6343
web2py.gluon.html.TABLE.tag
 
6344
web2py.gluon.html.TBODY.tag
 
6345
web2py.gluon.html.TD.tag
 
6346
web2py.gluon.html.TEXTAREA.tag
 
6347
web2py.gluon.html.TFOOT.tag
 
6348
web2py.gluon.html.TH.tag
 
6349
web2py.gluon.html.THEAD.tag
 
6350
web2py.gluon.html.TITLE.tag
 
6351
web2py.gluon.html.TR.tag
 
6352
web2py.gluon.html.TT.tag
 
6353
web2py.gluon.html.UL.tag
 
6354
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-380', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'form'</tt> </tt>
 
6355
<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"> </tt>
 
6356
<a name="FORM.__init__"></a><div id="FORM.__init__-def"><a name="L1753"></a><tt class="py-lineno">1753</tt> <a class="py-toggle" href="#" id="FORM.__init__-toggle" onclick="return toggle('FORM.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6357
</div><div id="FORM.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.__init__-expanded"><a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
6319
6358
web2py.gluon.dal.NoSQLAdapter.DIV
6320
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-394', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-395" 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__
 
6359
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-381', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-382" 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__
6321
6360
web2py.gluon.cache.CacheAbstract.__init__
6322
6361
web2py.gluon.cache.CacheInRam.__init__
6323
6362
web2py.gluon.cache.CacheOnDisk.__init__
6332
6371
web2py.gluon.dal.DatabaseStoredFile.__init__
6333
6372
web2py.gluon.dal.Expression.__init__
6334
6373
web2py.gluon.dal.Field.__init__
 
6374
web2py.gluon.dal.FieldLazy.__init__
 
6375
web2py.gluon.dal.FieldVirtual.__init__
6335
6376
web2py.gluon.dal.FireBirdAdapter.__init__
6336
6377
web2py.gluon.dal.FireBirdEmbeddedAdapter.__init__
6337
6378
web2py.gluon.dal.GAEDecimalProperty.__init__
6356
6397
web2py.gluon.dal.Set.__init__
6357
6398
web2py.gluon.dal.Table.__init__
6358
6399
web2py.gluon.dal.TeradataAdapter.__init__
 
6400
web2py.gluon.dal.VirtualCommand.__init__
6359
6401
web2py.gluon.debug.Pipe.__init__
6360
6402
web2py.gluon.globals.Request.__init__
6361
6403
web2py.gluon.globals.Response.__init__
6382
6424
web2py.gluon.rewrite.MapUrlOut.__init__
6383
6425
web2py.gluon.rocket.ChunkedReader.__init__
6384
6426
web2py.gluon.rocket.Connection.__init__
6385
 
web2py.gluon.rocket.FileWrapper.__init__
6386
 
web2py.gluon.rocket.Headers.__init__
 
6427
web2py.gluon.rocket.FileLikeSocket.__init__
 
6428
web2py.gluon.rocket.FileSystemWorker.__init__
 
6429
web2py.gluon.rocket.FuturesMiddleware.__init__
 
6430
web2py.gluon.rocket.LimitingFileWrapper.__init__
6387
6431
web2py.gluon.rocket.Listener.__init__
6388
6432
web2py.gluon.rocket.Monitor.__init__
6389
6433
web2py.gluon.rocket.Rocket.__init__
6390
6434
web2py.gluon.rocket.ThreadPool.__init__
 
6435
web2py.gluon.rocket.WSGIExecutor.__init__
 
6436
web2py.gluon.rocket.WSGIFuture.__init__
6391
6437
web2py.gluon.rocket.WSGIWorker.__init__
6392
6438
web2py.gluon.rocket.Worker.__init__
 
6439
web2py.gluon.rocket._WorkItem.__init__
6393
6440
web2py.gluon.sanitizer.XssCleaner.__init__
 
6441
web2py.gluon.scheduler.MetaScheduler.__init__
 
6442
web2py.gluon.scheduler.Scheduler.__init__
 
6443
web2py.gluon.scheduler.TYPE.__init__
 
6444
web2py.gluon.scheduler.Task.__init__
 
6445
web2py.gluon.scheduler.TaskReport.__init__
6394
6446
web2py.gluon.sqlhtml.AutocompleteWidget.__init__
6395
6447
web2py.gluon.sqlhtml.SQLFORM.__init__
6396
6448
web2py.gluon.sqlhtml.SQLTABLE.__init__
6441
6493
web2py.gluon.validators.IS_URL.__init__
6442
6494
web2py.gluon.widget.IO.__init__
6443
6495
web2py.gluon.widget.web2pyDialog.__init__
6444
 
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-395', '__init__', 'link-395');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">components</tt><tt class="py-op">,</tt>  <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
6445
 
<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt id="link-396" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-396', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6446
 
<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt id="link-397" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-397', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6447
 
<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> <tt class="py-op">=</tt> <tt id="link-398" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-398', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6448
 
</div><a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"> </tt>
6449
 
<a name="FORM.accepts"></a><div id="FORM.accepts-def"><a name="L1731"></a><tt class="py-lineno">1731</tt> <a class="py-toggle" href="#" id="FORM.accepts-toggle" onclick="return toggle('FORM.accepts');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#accepts">accepts</a><tt class="py-op">(</tt> </tt>
6450
 
<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
6451
 
<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">        <tt class="py-param">vars</tt><tt class="py-op">,</tt> </tt>
6452
 
<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
6453
 
<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt class="py-param">formname</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> </tt>
6454
 
<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line">        <tt class="py-param">keepvalues</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
6455
 
<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-param">onvalidation</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
6456
 
<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt class="py-param">hideerror</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
6457
 
<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6458
 
</div><div id="FORM.accepts-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.accepts-expanded"><a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'Request'</tt><tt class="py-op">:</tt> </tt>
6459
 
<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">            <tt class="py-name">vars</tt><tt class="py-op">=</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">post_vars</tt> </tt>
6460
 
<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name" targets="Method web2py.gluon.cache.CacheAbstract.clear()=web2py.gluon.cache.CacheAbstract-class.html#clear,Method web2py.gluon.cache.CacheInRam.clear()=web2py.gluon.cache.CacheInRam-class.html#clear,Method web2py.gluon.cache.CacheOnDisk.clear()=web2py.gluon.cache.CacheOnDisk-class.html#clear"><a title="web2py.gluon.cache.CacheAbstract.clear
 
6496
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-382', '__init__', 'link-382');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">components</tt><tt class="py-op">,</tt>  <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
6497
<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> <tt class="py-op">=</tt> <tt id="link-383" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-383', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6498
<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt id="link-384" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-384', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6499
<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">latest</tt> <tt class="py-op">=</tt> <tt id="link-385" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-385', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6500
<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">accepted</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># none for not submitted</tt> </tt>
 
6501
</div><a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"> </tt>
 
6502
<a name="FORM.accepts"></a><div id="FORM.accepts-def"><a name="L1760"></a><tt class="py-lineno">1760</tt> <a class="py-toggle" href="#" id="FORM.accepts-toggle" onclick="return toggle('FORM.accepts');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#accepts">accepts</a><tt class="py-op">(</tt> </tt>
 
6503
<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
 
6504
<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-param">request_vars</tt><tt class="py-op">,</tt> </tt>
 
6505
<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
6506
<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-param">formname</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> </tt>
 
6507
<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-param">keepvalues</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
 
6508
<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-param">onvalidation</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
6509
<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-param">hideerror</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
 
6510
<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-op">**</tt><tt class="py-param">kwargs</tt> </tt>
 
6511
<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6512
</div><div id="FORM.accepts-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.accepts-expanded"><a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
6513
<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"><tt class="py-docstring">        kwargs is not used but allows to specify the same interface for FROM and SQLFORM</tt> </tt>
 
6514
<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
6515
<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'Request'</tt><tt class="py-op">:</tt> </tt>
 
6516
<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">            <tt class="py-name">request_vars</tt><tt class="py-op">=</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">post_vars</tt> </tt>
 
6517
<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">.</tt><tt id="link-386" class="py-name" targets="Method web2py.gluon.cache.CacheAbstract.clear()=web2py.gluon.cache.CacheAbstract-class.html#clear,Method web2py.gluon.cache.CacheInRam.clear()=web2py.gluon.cache.CacheInRam-class.html#clear,Method web2py.gluon.cache.CacheOnDisk.clear()=web2py.gluon.cache.CacheOnDisk-class.html#clear"><a title="web2py.gluon.cache.CacheAbstract.clear
6461
6518
web2py.gluon.cache.CacheInRam.clear
6462
 
web2py.gluon.cache.CacheOnDisk.clear" class="py-name" href="#" onclick="return doclink('link-399', 'clear', 'link-399');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6463
 
<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> <tt class="py-op">=</tt> <tt id="link-400" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-400', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6464
 
<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-401" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.update()=web2py.gluon.dal.BaseAdapter-class.html#update,Method web2py.gluon.dal.CouchDBAdapter.update()=web2py.gluon.dal.CouchDBAdapter-class.html#update,Method web2py.gluon.dal.GoogleDatastoreAdapter.update()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#update,Method web2py.gluon.dal.MongoDBAdapter.update()=web2py.gluon.dal.MongoDBAdapter-class.html#update,Method web2py.gluon.dal.Set.update()=web2py.gluon.dal.Set-class.html#update,Method web2py.gluon.html.DIV.update()=web2py.gluon.html.DIV-class.html#update,Method web2py.gluon.tools.Crud.update()=web2py.gluon.tools.Crud-class.html#update,Method web2py.gluon.widget.web2pyDialog.update()=web2py.gluon.widget.web2pyDialog-class.html#update"><a title="web2py.gluon.dal.BaseAdapter.update
 
6519
web2py.gluon.cache.CacheOnDisk.clear" class="py-name" href="#" onclick="return doclink('link-386', 'clear', 'link-386');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6520
<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt> <tt class="py-op">=</tt> <tt id="link-387" class="py-name"><a title="web2py.gluon.storage.Storage" class="py-name" href="#" onclick="return doclink('link-387', 'Storage', 'link-6');">Storage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6521
<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt id="link-388" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.update()=web2py.gluon.dal.BaseAdapter-class.html#update,Method web2py.gluon.dal.CouchDBAdapter.update()=web2py.gluon.dal.CouchDBAdapter-class.html#update,Method web2py.gluon.dal.GoogleDatastoreAdapter.update()=web2py.gluon.dal.GoogleDatastoreAdapter-class.html#update,Method web2py.gluon.dal.MongoDBAdapter.update()=web2py.gluon.dal.MongoDBAdapter-class.html#update,Method web2py.gluon.dal.Set.update()=web2py.gluon.dal.Set-class.html#update,Method web2py.gluon.dal.Table.update()=web2py.gluon.dal.Table-class.html#update,Method web2py.gluon.html.DIV.update()=web2py.gluon.html.DIV-class.html#update,Method web2py.gluon.tools.Crud.update()=web2py.gluon.tools.Crud-class.html#update,Method web2py.gluon.widget.web2pyDialog.update()=web2py.gluon.widget.web2pyDialog-class.html#update"><a title="web2py.gluon.dal.BaseAdapter.update
6465
6522
web2py.gluon.dal.CouchDBAdapter.update
6466
6523
web2py.gluon.dal.GoogleDatastoreAdapter.update
6467
6524
web2py.gluon.dal.MongoDBAdapter.update
6468
6525
web2py.gluon.dal.Set.update
 
6526
web2py.gluon.dal.Table.update
6469
6527
web2py.gluon.html.DIV.update
6470
6528
web2py.gluon.tools.Crud.update
6471
 
web2py.gluon.widget.web2pyDialog.update" class="py-name" href="#" onclick="return doclink('link-401', 'update', 'link-401');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">vars</tt><tt class="py-op">)</tt> </tt>
6472
 
<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt> </tt>
6473
 
<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> <tt class="py-op">=</tt> <tt class="py-name">formname</tt> </tt>
6474
 
<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keepvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">keepvalues</tt> </tt>
6475
 
<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"> </tt>
6476
 
<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt class="py-comment"># if this tag is a form and we are in accepting mode (status=True)</tt> </tt>
6477
 
<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># check formname and formkey</tt> </tt>
6478
 
<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
6479
 
<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">        <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
6480
 
<a name="L1753"></a><tt class="py-lineno">1753</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">session</tt><tt class="py-op">:</tt> </tt>
6481
 
<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">            <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-402', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_formkey[%s]'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
6482
 
<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">            <tt class="py-comment"># check if user tampering with form and void CSRF</tt> </tt>
6483
 
<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">formkey</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">_formkey</tt><tt class="py-op">:</tt> </tt>
6484
 
<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">                <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
6485
 
<a name="L1758"></a><tt class="py-lineno">1758</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">formname</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">_formname</tt><tt class="py-op">:</tt> </tt>
6486
 
<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">            <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
6487
 
<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">status</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">:</tt> </tt>
6488
 
<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">            <tt class="py-comment"># check if editing a record that has been modified by the server</tt> </tt>
6489
 
<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'record_hash'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_hash</tt> <tt class="py-op">!=</tt> <tt class="py-name">formkey</tt><tt class="py-op">:</tt> </tt>
6490
 
<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">                <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
6491
 
<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_changed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
6492
 
<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-403', '_traverse', 'link-100');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> </tt>
6493
 
<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">:</tt> </tt>
6494
 
<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">onvalidation</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6495
 
<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">                <tt class="py-name">onsuccess</tt> <tt class="py-op">=</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-404', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onsuccess'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
6496
 
<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">                <tt class="py-name">onfailure</tt> <tt class="py-op">=</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">.</tt><tt id="link-405" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-405', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onfailure'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
6497
 
<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">onsuccess</tt> <tt class="py-keyword">and</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
6498
 
<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">                    <tt class="py-name">onsuccess</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
6499
 
<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">onfailure</tt> <tt class="py-keyword">and</tt> <tt class="py-name">vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
6500
 
<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">                    <tt class="py-name">onfailure</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
6501
 
<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">                    <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt id="link-406" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-406', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> </tt>
6502
 
<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
6503
 
<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">onvalidation</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6504
 
<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">                    <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">]</tt> </tt>
6505
 
<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6506
 
<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">                    <tt class="py-name">onvalidation</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
6507
 
<a name="L1780"></a><tt class="py-lineno">1780</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">errors</tt><tt class="py-op">:</tt> </tt>
6508
 
<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">            <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
6509
 
<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">session</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
6510
 
<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'record_hash'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6511
 
<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">                <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_hash</tt> </tt>
6512
 
<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6513
 
<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">                <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt id="link-407" class="py-name"><a title="web2py.gluon.utils.web2py_uuid" class="py-name" href="#" onclick="return doclink('link-407', 'web2py_uuid', 'link-10');">web2py_uuid</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6514
 
<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt><tt class="py-op">[</tt><tt class="py-string">'_formkey[%s]'</tt> <tt class="py-op">%</tt> <tt class="py-name">formname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">formkey</tt> </tt>
6515
 
<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">status</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">keepvalues</tt><tt class="py-op">:</tt> </tt>
6516
 
<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-408" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-408', '_traverse', 'link-100');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> </tt>
6517
 
<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">status</tt> </tt>
6518
 
</div><a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"> </tt>
6519
 
<a name="FORM._postprocessing"></a><div id="FORM._postprocessing-def"><a name="L1792"></a><tt class="py-lineno">1792</tt> <a class="py-toggle" href="#" id="FORM._postprocessing-toggle" onclick="return toggle('FORM._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6520
 
</div><div id="FORM._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM._postprocessing-expanded"><a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_action'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6521
 
<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_action'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
6522
 
<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_method'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6523
 
<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_method'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'post'</tt> </tt>
6524
 
<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_enctype'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6525
 
<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_enctype'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'multipart/form-data'</tt> </tt>
6526
 
</div><a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"> </tt>
6527
 
<a name="FORM.hidden_fields"></a><div id="FORM.hidden_fields-def"><a name="L1800"></a><tt class="py-lineno">1800</tt> <a class="py-toggle" href="#" id="FORM.hidden_fields-toggle" onclick="return toggle('FORM.hidden_fields');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#hidden_fields">hidden_fields</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6528
 
</div><div id="FORM.hidden_fields-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.hidden_fields-expanded"><a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
6529
 
<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'hidden'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6530
 
<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</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">attributes</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-409', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-410', 'items', 'link-29');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6531
 
<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="web2py.gluon.html.DIV.append
6532
 
web2py.gluon.template.BlockNode.append
6533
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-411', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-412" class="py-name" targets="Class web2py.gluon.html.INPUT=web2py.gluon.html.INPUT-class.html"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-412', 'INPUT', 'link-412');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-413" class="py-name" targets="Variable psycopg2.tz.FixedOffsetTimezone._name=psycopg2.tz.FixedOffsetTimezone-class.html#_name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-413', '_name', 'link-413');">_name</a></tt><tt class="py-op">=</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6534
 
<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"> </tt>
6535
 
<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'formkey'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt><tt class="py-op">:</tt> </tt>
6536
 
<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="web2py.gluon.html.DIV.append
6537
 
web2py.gluon.template.BlockNode.append
6538
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-414', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-415" class="py-name"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-415', 'INPUT', 'link-412');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-416" class="py-name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-416', '_name', 'link-413');">_name</a></tt><tt class="py-op">=</tt><tt class="py-string">'_formkey'</tt><tt class="py-op">,</tt> </tt>
6539
 
<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">                     <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6540
 
<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'formname'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">:</tt> </tt>
6541
 
<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="web2py.gluon.html.DIV.append
6542
 
web2py.gluon.template.BlockNode.append
6543
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-417', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-418" class="py-name"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-418', 'INPUT', 'link-412');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-419" class="py-name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-419', '_name', 'link-413');">_name</a></tt><tt class="py-op">=</tt><tt class="py-string">'_formname'</tt><tt class="py-op">,</tt> </tt>
6544
 
<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">                     <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6545
 
<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-420" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
6546
 
web2py.gluon.dal.NoSQLAdapter.DIV
6547
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-420', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-string">"hidden"</tt><tt class="py-op">)</tt> </tt>
6548
 
</div><a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"> </tt>
6549
 
<a name="FORM.xml"></a><div id="FORM.xml-def"><a name="L1814"></a><tt class="py-lineno">1814</tt> <a class="py-toggle" href="#" id="FORM.xml-toggle" onclick="return toggle('FORM.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6550
 
</div><div id="FORM.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.xml-expanded"><a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">newform</tt> <tt class="py-op">=</tt> <tt id="link-421" class="py-name" targets="Class web2py.gluon.html.FORM=web2py.gluon.html.FORM-class.html"><a title="web2py.gluon.html.FORM" class="py-name" href="#" onclick="return doclink('link-421', 'FORM', 'link-421');">FORM</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
6551
 
<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt id="link-422" class="py-name" targets="Method web2py.gluon.html.FORM.hidden_fields()=web2py.gluon.html.FORM-class.html#hidden_fields"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-422', 'hidden_fields', 'link-422');">hidden_fields</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-423', 'hidden_fields', 'link-422');">hidden_fields</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
6552
 
<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-424" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-424', 'hidden_fields', 'link-422');">hidden_fields</a></tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
6553
 
<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">            <tt class="py-name">newform</tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="web2py.gluon.html.DIV.append
6554
 
web2py.gluon.template.BlockNode.append
6555
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-425', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-426" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-426', 'hidden_fields', 'link-422');">hidden_fields</a></tt><tt class="py-op">)</tt> </tt>
6556
 
<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-427" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
6557
 
web2py.gluon.dal.NoSQLAdapter.DIV
6558
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-427', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
6529
web2py.gluon.widget.web2pyDialog.update" class="py-name" href="#" onclick="return doclink('link-388', 'update', 'link-388');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">request_vars</tt><tt class="py-op">)</tt> </tt>
 
6530
<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt> </tt>
 
6531
<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt> <tt class="py-op">=</tt> <tt class="py-name">formname</tt> </tt>
 
6532
<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keepvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">keepvalues</tt> </tt>
 
6533
<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"> </tt>
 
6534
<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt class="py-comment"># if this tag is a form and we are in accepting mode (status=True)</tt> </tt>
 
6535
<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-comment"># check formname and formkey</tt> </tt>
 
6536
<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
 
6537
<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
6538
<a name="L1786"></a><tt class="py-lineno">1786</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">session</tt><tt class="py-op">:</tt> </tt>
 
6539
<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">            <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-389', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_formkey[%s]'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
6540
<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">            <tt class="py-comment"># check if user tampering with form and void CSRF</tt> </tt>
 
6541
<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">formkey</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">_formkey</tt><tt class="py-op">:</tt> </tt>
 
6542
<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">                <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
6543
<a name="L1791"></a><tt class="py-lineno">1791</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">formname</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_vars</tt><tt class="py-op">.</tt><tt class="py-name">_formname</tt><tt class="py-op">:</tt> </tt>
 
6544
<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">            <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
6545
<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">status</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">:</tt> </tt>
 
6546
<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">            <tt class="py-comment"># check if editing a record that has been modified by the server</tt> </tt>
 
6547
<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'record_hash'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_hash</tt> <tt class="py-op">!=</tt> <tt class="py-name">formkey</tt><tt class="py-op">:</tt> </tt>
 
6548
<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">                <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
6549
<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_changed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
6550
<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-390', '_traverse', 'link-99');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> </tt>
 
6551
<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">:</tt> </tt>
 
6552
<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">onvalidation</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6553
<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">                <tt class="py-name">onsuccess</tt> <tt class="py-op">=</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-391', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onsuccess'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
6554
<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">                <tt class="py-name">onfailure</tt> <tt class="py-op">=</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">.</tt><tt id="link-392" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-392', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onfailure'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
6555
<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">onsuccess</tt> <tt class="py-keyword">and</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
 
6556
<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">                    <tt class="py-name">onsuccess</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
6557
<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">onfailure</tt> <tt class="py-keyword">and</tt> <tt class="py-name">request_vars</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
 
6558
<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">                    <tt class="py-name">onfailure</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
6559
<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">                    <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt id="link-393" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-393', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> </tt>
 
6560
<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
 
6561
<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">onvalidation</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6562
<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">                    <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">onvalidation</tt><tt class="py-op">]</tt> </tt>
 
6563
<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6564
<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">                    <tt class="py-name">onvalidation</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
6565
<a name="L1813"></a><tt class="py-lineno">1813</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">errors</tt><tt class="py-op">:</tt> </tt>
 
6566
<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">            <tt class="py-name">status</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
6567
<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">session</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
6568
<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt><tt class="py-string">'record_hash'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6569
<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">                <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">record_hash</tt> </tt>
 
6570
<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6571
<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">                <tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name"><a title="web2py.gluon.utils.web2py_uuid" class="py-name" href="#" onclick="return doclink('link-394', 'web2py_uuid', 'link-10');">web2py_uuid</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6572
<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt><tt class="py-op">[</tt><tt class="py-string">'_formkey[%s]'</tt> <tt class="py-op">%</tt> <tt class="py-name">formname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">formkey</tt> </tt>
 
6573
<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">status</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">keepvalues</tt><tt class="py-op">:</tt> </tt>
 
6574
<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="web2py.gluon.html.DIV._traverse" class="py-name" href="#" onclick="return doclink('link-395', '_traverse', 'link-99');">_traverse</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt><tt class="py-name">hideerror</tt><tt class="py-op">)</tt> </tt>
 
6575
<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">accepted</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
 
6576
<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">status</tt> </tt>
 
6577
</div><a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line"> </tt>
 
6578
<a name="FORM._postprocessing"></a><div id="FORM._postprocessing-def"><a name="L1826"></a><tt class="py-lineno">1826</tt> <a class="py-toggle" href="#" id="FORM._postprocessing-toggle" onclick="return toggle('FORM._postprocessing');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#_postprocessing">_postprocessing</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6579
</div><div id="FORM._postprocessing-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM._postprocessing-expanded"><a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_action'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
6580
<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_action'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
6581
<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_method'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
6582
<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_method'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'post'</tt> </tt>
 
6583
<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_enctype'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
6584
<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_enctype'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'multipart/form-data'</tt> </tt>
 
6585
</div><a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"> </tt>
 
6586
<a name="FORM.hidden_fields"></a><div id="FORM.hidden_fields-def"><a name="L1834"></a><tt class="py-lineno">1834</tt> <a class="py-toggle" href="#" id="FORM.hidden_fields-toggle" onclick="return toggle('FORM.hidden_fields');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#hidden_fields">hidden_fields</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6587
</div><div id="FORM.hidden_fields-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.hidden_fields-expanded"><a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6588
<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'hidden'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
6589
<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</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">attributes</tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-396', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6590
<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">                <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6591
web2py.gluon.template.BlockNode.append
 
6592
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-397', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-398" class="py-name" targets="Class web2py.gluon.html.INPUT=web2py.gluon.html.INPUT-class.html"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-398', 'INPUT', 'link-398');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-399" class="py-name" targets="Variable psycopg2.tz.FixedOffsetTimezone._name=psycopg2.tz.FixedOffsetTimezone-class.html#_name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-399', '_name', 'link-399');">_name</a></tt><tt class="py-op">=</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6593
<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"> </tt>
 
6594
<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'formkey'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt><tt class="py-op">:</tt> </tt>
 
6595
<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6596
web2py.gluon.template.BlockNode.append
 
6597
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-400', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-401', 'INPUT', 'link-398');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-402" class="py-name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-402', '_name', 'link-399');">_name</a></tt><tt class="py-op">=</tt><tt class="py-string">'_formkey'</tt><tt class="py-op">,</tt> </tt>
 
6598
<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">                     <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6599
<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'formname'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">:</tt> </tt>
 
6600
<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6601
web2py.gluon.template.BlockNode.append
 
6602
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-403', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="web2py.gluon.html.INPUT" class="py-name" href="#" onclick="return doclink('link-404', 'INPUT', 'link-398');">INPUT</a></tt><tt class="py-op">(</tt><tt class="py-name">_type</tt><tt class="py-op">=</tt><tt class="py-string">'hidden'</tt><tt class="py-op">,</tt> <tt id="link-405" class="py-name"><a title="psycopg2.tz.FixedOffsetTimezone._name" class="py-name" href="#" onclick="return doclink('link-405', '_name', 'link-399');">_name</a></tt><tt class="py-op">=</tt><tt class="py-string">'_formname'</tt><tt class="py-op">,</tt> </tt>
 
6603
<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">                     <tt class="py-name">_value</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">formname</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6604
<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-406" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
6605
web2py.gluon.dal.NoSQLAdapter.DIV
 
6606
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-406', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-string">"hidden"</tt><tt class="py-op">)</tt> </tt>
 
6607
</div><a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"> </tt>
 
6608
<a name="FORM.xml"></a><div id="FORM.xml-def"><a name="L1848"></a><tt class="py-lineno">1848</tt> <a class="py-toggle" href="#" id="FORM.xml-toggle" onclick="return toggle('FORM.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6609
</div><div id="FORM.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.xml-expanded"><a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">        <tt class="py-name">newform</tt> <tt class="py-op">=</tt> <tt id="link-407" class="py-name" targets="Class web2py.gluon.html.FORM=web2py.gluon.html.FORM-class.html"><a title="web2py.gluon.html.FORM" class="py-name" href="#" onclick="return doclink('link-407', 'FORM', 'link-407');">FORM</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
6610
<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt id="link-408" class="py-name" targets="Method web2py.gluon.html.FORM.hidden_fields()=web2py.gluon.html.FORM-class.html#hidden_fields"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-408', 'hidden_fields', 'link-408');">hidden_fields</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-409', 'hidden_fields', 'link-408');">hidden_fields</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
6611
<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-410" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-410', 'hidden_fields', 'link-408');">hidden_fields</a></tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
6612
<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">            <tt class="py-name">newform</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6613
web2py.gluon.template.BlockNode.append
 
6614
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-411', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-412" class="py-name"><a title="web2py.gluon.html.FORM.hidden_fields" class="py-name" href="#" onclick="return doclink('link-412', 'hidden_fields', 'link-408');">hidden_fields</a></tt><tt class="py-op">)</tt> </tt>
 
6615
<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-413" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
6616
web2py.gluon.dal.NoSQLAdapter.DIV
 
6617
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-413', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="web2py.gluon.dal.Rows.xml
6559
6618
web2py.gluon.html.A.xml
6560
6619
web2py.gluon.html.CODE.xml
6561
6620
web2py.gluon.html.DIV.xml
6573
6632
web2py.gluon.languages.lazyT.xml
6574
6633
web2py.gluon.serializers.xml
6575
6634
web2py.gluon.tools.Recaptcha.xml
6576
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-428', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">newform</tt><tt class="py-op">)</tt> </tt>
6577
 
</div><a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line"> </tt>
6578
 
<a name="FORM.validate"></a><div id="FORM.validate-def"><a name="L1821"></a><tt class="py-lineno">1821</tt> <a class="py-toggle" href="#" id="FORM.validate-toggle" onclick="return toggle('FORM.validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#validate">validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt>  </tt>
6579
 
<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">                 <tt class="py-param">values</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
6580
 
<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">                 <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>  </tt>
6581
 
<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">                 <tt class="py-param">formname</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> </tt>
6582
 
<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">                 <tt class="py-param">keepvalues</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
6583
 
<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">                 <tt class="py-param">onvalidation</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
6584
 
<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">                 <tt class="py-param">hideerror</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
6585
 
<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">                 <tt class="py-param">onsuccess</tt><tt class="py-op">=</tt><tt class="py-string">'flash'</tt><tt class="py-op">,</tt> </tt>
6586
 
<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">                 <tt class="py-param">onfailure</tt><tt class="py-op">=</tt><tt class="py-string">'flash'</tt><tt class="py-op">,</tt> </tt>
6587
 
<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">                 <tt class="py-param">message_onsuccess</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>  </tt>
6588
 
<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">                 <tt class="py-param">message_onfailure</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>  </tt>
6589
 
<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">                 <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6590
 
</div><div id="FORM.validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.validate-expanded"><a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
6591
 
<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"><tt class="py-docstring">        This function validates the form, </tt> </tt>
6592
 
<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line"><tt class="py-docstring">        you can use it instead of directly form.accepts.</tt> </tt>
6593
 
<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6594
 
<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"><tt class="py-docstring">        Usage:</tt> </tt>
6595
 
<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"><tt class="py-docstring">        In controller</tt> </tt>
6596
 
<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6597
 
<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
6598
 
<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line"><tt class="py-docstring">            form=FORM(INPUT(_name=\"test\", requires=IS_NOT_EMPTY()))</tt> </tt>
6599
 
<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line"><tt class="py-docstring">            form.validate() #you can pass some args here - see below</tt> </tt>
6600
 
<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=form)</tt> </tt>
6601
 
<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6602
 
<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line"><tt class="py-docstring">        This can receive a bunch of arguments        </tt> </tt>
6603
 
<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6604
 
<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"><tt class="py-docstring">        onsuccess = 'flash' - will show message_onsuccess in response.flash</tt> </tt>
6605
 
<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"><tt class="py-docstring">                    None - will do nothing</tt> </tt>
6606
 
<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line"><tt class="py-docstring">                    can be a function (lambda form: pass)</tt> </tt>
6607
 
<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line"><tt class="py-docstring">        onfailure = 'flash' - will show message_onfailure in response.flash</tt> </tt>
6608
 
<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"><tt class="py-docstring">                    None - will do nothing</tt> </tt>
6609
 
<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line"><tt class="py-docstring">                    can be a function (lambda form: pass)</tt> </tt>
6610
 
<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6611
 
<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"><tt class="py-docstring">        values = values to test the validation - dictionary, response.vars, session or other - Default to (request.vars, session)</tt> </tt>
6612
 
<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"><tt class="py-docstring">        message_onsuccess</tt> </tt>
6613
 
<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line"><tt class="py-docstring">        message_onfailure</tt> </tt>
6614
 
<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
6615
 
<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-429" class="py-name" targets="Package web2py.gluon=web2py.gluon-module.html"><a title="web2py.gluon" class="py-name" href="#" onclick="return doclink('link-429', 'gluon', 'link-429');">gluon</a></tt> <tt class="py-keyword">import</tt> <tt id="link-430" class="py-name"><a title="web2py.gluon.current
6616
 
web2py.gluon.globals.current
6617
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-430', 'current', 'link-19');">current</a></tt> </tt>
6618
 
<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">session</tt><tt class="py-op">:</tt> <tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt id="link-431" class="py-name"><a title="web2py.gluon.current
6619
 
web2py.gluon.globals.current
6620
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-431', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt> </tt>
6621
 
<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-432" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-432', 'values', 'link-387');">values</a></tt><tt class="py-op">:</tt> <tt id="link-433" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-433', 'values', 'link-387');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-434" class="py-name"><a title="web2py.gluon.current
6622
 
web2py.gluon.globals.current
6623
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-434', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">post_vars</tt> </tt>
6624
 
<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">          </tt>
6625
 
<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt class="py-name">message_onsuccess</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onsuccess</tt> <tt class="py-keyword">or</tt> <tt id="link-435" class="py-name"><a title="web2py.gluon.current
6626
 
web2py.gluon.globals.current
6627
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-435', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt id="link-436" class="py-name" targets="Variable web2py.gluon.languages.lazyT.T=web2py.gluon.languages.lazyT-class.html#T"><a title="web2py.gluon.languages.lazyT.T" class="py-name" href="#" onclick="return doclink('link-436', 'T', 'link-436');">T</a></tt><tt class="py-op">(</tt><tt class="py-string">"Success!"</tt><tt class="py-op">)</tt> </tt>
6628
 
<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">message_onfailure</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onfailure</tt> <tt class="py-keyword">or</tt> \ </tt>
6629
 
<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">            <tt id="link-437" class="py-name"><a title="web2py.gluon.current
6630
 
web2py.gluon.globals.current
6631
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-437', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="web2py.gluon.languages.lazyT.T" class="py-name" href="#" onclick="return doclink('link-438', 'T', 'link-436');">T</a></tt><tt class="py-op">(</tt><tt class="py-string">"Errors in form, please check it out."</tt><tt class="py-op">)</tt> </tt>
6632
 
<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line"> </tt>
6633
 
<a name="L1866"></a><tt class="py-lineno">1866</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-439" class="py-name" targets="Method web2py.gluon.html.FORM.accepts()=web2py.gluon.html.FORM-class.html#accepts,Method web2py.gluon.sqlhtml.SQLFORM.accepts()=web2py.gluon.sqlhtml.SQLFORM-class.html#accepts"><a title="web2py.gluon.html.FORM.accepts
6634
 
web2py.gluon.sqlhtml.SQLFORM.accepts" class="py-name" href="#" onclick="return doclink('link-439', 'accepts', 'link-439');">accepts</a></tt><tt class="py-op">(</tt><tt id="link-440" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-440', 'values', 'link-387');">values</a></tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6635
 
<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">onsuccess</tt> <tt class="py-op">==</tt> <tt class="py-string">'flash'</tt><tt class="py-op">:</tt> </tt>
6636
 
<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">                <tt id="link-441" class="py-name"><a title="web2py.gluon.current
6637
 
web2py.gluon.globals.current
6638
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-441', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">response</tt><tt class="py-op">.</tt><tt class="py-name">flash</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onsuccess</tt> </tt>
6639
 
<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">onsuccess</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6640
 
<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">                <tt class="py-name">onsuccess</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
6641
 
<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
6642
 
<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
6643
 
<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">onfailure</tt> <tt class="py-op">==</tt> <tt class="py-string">'flash'</tt><tt class="py-op">:</tt> </tt>
6644
 
<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">                <tt id="link-442" class="py-name"><a title="web2py.gluon.current
6645
 
web2py.gluon.globals.current
6646
 
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-442', 'current', 'link-19');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">response</tt><tt class="py-op">.</tt><tt class="py-name">flash</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onfailure</tt> </tt>
6647
 
<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">onfailure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6648
 
<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">                <tt class="py-name">onfailure</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
6649
 
<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
6650
 
</div><a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line"> </tt>
6651
 
<a name="FORM.process"></a><div id="FORM.process-def"><a name="L1879"></a><tt class="py-lineno">1879</tt> <a class="py-toggle" href="#" id="FORM.process-toggle" onclick="return toggle('FORM.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6652
 
</div><div id="FORM.process-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.process-expanded"><a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
6653
 
<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"><tt class="py-docstring">        Perform the .validate() method but returns the form</tt> </tt>
6654
 
<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6655
 
<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line"><tt class="py-docstring">        Usage in controllers:</tt> </tt>
6656
 
<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line"><tt class="py-docstring">        # directly on return</tt> </tt>
6657
 
<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
6658
 
<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line"><tt class="py-docstring">            #some code here</tt> </tt>
6659
 
<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=FORM(...).process(...))</tt> </tt>
6660
 
<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6661
 
<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line"><tt class="py-docstring">        You can use it with FORM, SQLFORM or FORM based plugins</tt> </tt>
6662
 
<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6663
 
<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line"><tt class="py-docstring">        Examples:</tt> </tt>
6664
 
<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line"><tt class="py-docstring">        #response.flash messages</tt> </tt>
6665
 
<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
6666
 
<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line"><tt class="py-docstring">            form = SQLFORM(db.table).process(message_onsuccess='Sucess!')</tt> </tt>
6667
 
<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line"><tt class="py-docstring">            retutn dict(form=form)</tt> </tt>
6668
 
<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6669
 
<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"><tt class="py-docstring">        # callback function</tt> </tt>
6670
 
<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line"><tt class="py-docstring">        # callback receives True or False as first arg, and a list of args.</tt> </tt>
6671
 
<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line"><tt class="py-docstring">        def my_callback(status, msg):</tt> </tt>
6672
 
<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line"><tt class="py-docstring">           response.flash = "Success! "+msg if status else "Errors occured"</tt> </tt>
6673
 
<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6674
 
<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line"><tt class="py-docstring">        # after argument can be 'flash' to response.flash messages</tt> </tt>
6675
 
<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line"><tt class="py-docstring">        # or a function name to use as callback or None to do nothing.</tt> </tt>
6676
 
<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
6677
 
<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=SQLFORM(db.table).process(onsuccess=my_callback)</tt> </tt>
6678
 
<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt>  </tt>
6679
 
<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name" targets="Method web2py.gluon.dal.Field.validate()=web2py.gluon.dal.Field-class.html#validate,Method web2py.gluon.dal.GAEDecimalProperty.validate()=web2py.gluon.dal.GAEDecimalProperty-class.html#validate,Method web2py.gluon.html.FORM.validate()=web2py.gluon.html.FORM-class.html#validate"><a title="web2py.gluon.dal.Field.validate
 
6635
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-414', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-name">newform</tt><tt class="py-op">)</tt> </tt>
 
6636
</div><a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line"> </tt>
 
6637
<a name="FORM.validate"></a><div id="FORM.validate-def"><a name="L1855"></a><tt class="py-lineno">1855</tt> <a class="py-toggle" href="#" id="FORM.validate-toggle" onclick="return toggle('FORM.validate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#validate">validate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6638
</div><div id="FORM.validate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.validate-expanded"><a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
6639
<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"><tt class="py-docstring">        This function validates the form,</tt> </tt>
 
6640
<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line"><tt class="py-docstring">        you can use it instead of directly form.accepts.</tt> </tt>
 
6641
<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6642
<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line"><tt class="py-docstring">        Usage:</tt> </tt>
 
6643
<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line"><tt class="py-docstring">        In controller</tt> </tt>
 
6644
<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6645
<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
 
6646
<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line"><tt class="py-docstring">            form=FORM(INPUT(_name=\"test\", requires=IS_NOT_EMPTY()))</tt> </tt>
 
6647
<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line"><tt class="py-docstring">            form.validate() #you can pass some args here - see below</tt> </tt>
 
6648
<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=form)</tt> </tt>
 
6649
<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6650
<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line"><tt class="py-docstring">        This can receive a bunch of arguments</tt> </tt>
 
6651
<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6652
<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line"><tt class="py-docstring">        onsuccess = 'flash' - will show message_onsuccess in response.flash</tt> </tt>
 
6653
<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line"><tt class="py-docstring">                    None - will do nothing</tt> </tt>
 
6654
<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line"><tt class="py-docstring">                    can be a function (lambda form: pass)</tt> </tt>
 
6655
<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line"><tt class="py-docstring">        onfailure = 'flash' - will show message_onfailure in response.flash</tt> </tt>
 
6656
<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line"><tt class="py-docstring">                    None - will do nothing</tt> </tt>
 
6657
<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line"><tt class="py-docstring">                    can be a function (lambda form: pass)</tt> </tt>
 
6658
<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"><tt class="py-docstring">        message_onsuccess</tt> </tt>
 
6659
<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line"><tt class="py-docstring">        message_onfailure</tt> </tt>
 
6660
<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line"><tt class="py-docstring">        next      = where to redirect in case of success</tt> </tt>
 
6661
<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line"><tt class="py-docstring">        any other kwargs will be passed for form.accepts(...)</tt> </tt>
 
6662
<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
6663
<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-415" class="py-name" targets="Package web2py.gluon=web2py.gluon-module.html"><a title="web2py.gluon" class="py-name" href="#" onclick="return doclink('link-415', 'gluon', 'link-415');">gluon</a></tt> <tt class="py-keyword">import</tt> <tt id="link-416" class="py-name"><a title="web2py.gluon.current
 
6664
web2py.gluon.globals.current
 
6665
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-416', 'current', 'link-20');">current</a></tt><tt class="py-op">,</tt> <tt id="link-417" class="py-name" targets="Function web2py.gluon.http.redirect()=web2py.gluon.http-module.html#redirect"><a title="web2py.gluon.http.redirect" class="py-name" href="#" onclick="return doclink('link-417', 'redirect', 'link-417');">redirect</a></tt> </tt>
 
6666
<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">        <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'request_vars'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-418', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'request_vars'</tt><tt class="py-op">,</tt><tt id="link-419" class="py-name"><a title="web2py.gluon.current
 
6667
web2py.gluon.globals.current
 
6668
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-419', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">request</tt><tt class="py-op">.</tt><tt class="py-name">post_vars</tt><tt class="py-op">)</tt> </tt>
 
6669
<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'session'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-420', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'session'</tt><tt class="py-op">,</tt><tt id="link-421" class="py-name"><a title="web2py.gluon.current
 
6670
web2py.gluon.globals.current
 
6671
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-421', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">)</tt> </tt>
 
6672
<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'dbio'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-422', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'dbio'</tt><tt class="py-op">,</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> <tt class="py-comment"># necessary for SQLHTML forms</tt> </tt>
 
6673
<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"> </tt>
 
6674
<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt class="py-name">onsuccess</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-423', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onsuccess'</tt><tt class="py-op">,</tt><tt class="py-string">'flash'</tt><tt class="py-op">)</tt> </tt>
 
6675
<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt class="py-name">onfailure</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-424', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'onfailure'</tt><tt class="py-op">,</tt><tt class="py-string">'flash'</tt><tt class="py-op">)</tt> </tt>
 
6676
<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt class="py-name">message_onsuccess</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-425', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'message_onsuccess'</tt><tt class="py-op">,</tt> </tt>
 
6677
<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">                                       <tt id="link-426" class="py-name"><a title="web2py.gluon.current
 
6678
web2py.gluon.globals.current
 
6679
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-426', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt id="link-427" class="py-name" targets="Variable web2py.gluon.languages.lazyT.T=web2py.gluon.languages.lazyT-class.html#T"><a title="web2py.gluon.languages.lazyT.T" class="py-name" href="#" onclick="return doclink('link-427', 'T', 'link-427');">T</a></tt><tt class="py-op">(</tt><tt class="py-string">"Success!"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6680
<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">        <tt class="py-name">message_onfailure</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-428', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'message_onfailure'</tt><tt class="py-op">,</tt> </tt>
 
6681
<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">                                       <tt id="link-429" class="py-name"><a title="web2py.gluon.current
 
6682
web2py.gluon.globals.current
 
6683
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-429', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="web2py.gluon.languages.lazyT.T" class="py-name" href="#" onclick="return doclink('link-430', 'T', 'link-427');">T</a></tt><tt class="py-op">(</tt><tt class="py-string">"Errors in form, please check it out."</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6684
<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">        <tt id="link-431" class="py-name" targets="Method web2py.gluon.rocket.FileLikeSocket.next()=web2py.gluon.rocket.FileLikeSocket-class.html#next"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-431', 'next', 'link-431');">next</a></tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-432', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'next'</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
 
6685
<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'message_onsuccess'</tt><tt class="py-op">,</tt><tt class="py-string">'message_onfailure'</tt><tt class="py-op">,</tt><tt class="py-string">'onsuccess'</tt><tt class="py-op">,</tt> </tt>
 
6686
<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line">                    <tt class="py-string">'onfailure'</tt><tt class="py-op">,</tt><tt class="py-string">'next'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6687
<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
 
6688
<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">                <tt class="py-keyword">del</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
 
6689
<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"> </tt>
 
6690
<a name="L1898"></a><tt class="py-lineno">1898</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-433" class="py-name" targets="Method web2py.gluon.html.FORM.accepts()=web2py.gluon.html.FORM-class.html#accepts,Method web2py.gluon.sqlhtml.SQLFORM.accepts()=web2py.gluon.sqlhtml.SQLFORM-class.html#accepts"><a title="web2py.gluon.html.FORM.accepts
 
6691
web2py.gluon.sqlhtml.SQLFORM.accepts" class="py-name" href="#" onclick="return doclink('link-433', 'accepts', 'link-433');">accepts</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6692
<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">onsuccess</tt> <tt class="py-op">==</tt> <tt class="py-string">'flash'</tt><tt class="py-op">:</tt> </tt>
 
6693
<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-434" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-434', 'next', 'link-431');">next</a></tt><tt class="py-op">:</tt> </tt>
 
6694
<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">                    <tt id="link-435" class="py-name"><a title="web2py.gluon.current
 
6695
web2py.gluon.globals.current
 
6696
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-435', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">flash</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onsuccess</tt> </tt>
 
6697
<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6698
<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">                    <tt id="link-436" class="py-name"><a title="web2py.gluon.current
 
6699
web2py.gluon.globals.current
 
6700
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-436', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">response</tt><tt class="py-op">.</tt><tt class="py-name">flash</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onsuccess</tt> </tt>
 
6701
<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">onsuccess</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6702
<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">                <tt class="py-name">onsuccess</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
6703
<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-437" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-437', 'next', 'link-431');">next</a></tt><tt class="py-op">:</tt> </tt>
 
6704
<a name="L1907"></a><tt class="py-lineno">1907</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">vars</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
 
6705
<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">                    <tt id="link-438" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-438', 'next', 'link-431');">next</a></tt> <tt class="py-op">=</tt> <tt id="link-439" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-439', 'next', 'link-431');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'[id]'</tt><tt class="py-op">,</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6706
<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">                    <tt id="link-440" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-440', 'next', 'link-431');">next</a></tt> <tt class="py-op">=</tt> <tt id="link-441" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-441', 'next', 'link-431');">next</a></tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">vars</tt> </tt>
 
6707
<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-442" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-442', 'next', 'link-431');">next</a></tt><tt class="py-op">.</tt><tt id="link-443" 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
 
6708
web2py.gluon.dal.SQLCustomType.startswith" class="py-name" href="#" onclick="return doclink('link-443', 'startswith', 'link-443');">startswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6709
<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">                        <tt id="link-444" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-444', 'next', 'link-431');">next</a></tt> <tt class="py-op">=</tt> <tt id="link-445" class="py-name"><a title="web2py.gluon.html.URL" class="py-name" href="#" onclick="return doclink('link-445', 'URL', 'link-66');">URL</a></tt><tt class="py-op">(</tt><tt id="link-446" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-446', 'next', 'link-431');">next</a></tt><tt class="py-op">)</tt> </tt>
 
6710
<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">                <tt id="link-447" class="py-name"><a title="web2py.gluon.http.redirect" class="py-name" href="#" onclick="return doclink('link-447', 'redirect', 'link-417');">redirect</a></tt><tt class="py-op">(</tt><tt id="link-448" class="py-name"><a title="web2py.gluon.rocket.FileLikeSocket.next" class="py-name" href="#" onclick="return doclink('link-448', 'next', 'link-431');">next</a></tt><tt class="py-op">)</tt> </tt>
 
6711
<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
6712
<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">errors</tt><tt class="py-op">:</tt> </tt>
 
6713
<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">onfailure</tt> <tt class="py-op">==</tt> <tt class="py-string">'flash'</tt><tt class="py-op">:</tt> </tt>
 
6714
<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">                <tt id="link-449" class="py-name"><a title="web2py.gluon.current
 
6715
web2py.gluon.globals.current
 
6716
web2py.gluon.tools.current" class="py-name" href="#" onclick="return doclink('link-449', 'current', 'link-20');">current</a></tt><tt class="py-op">.</tt><tt class="py-name">response</tt><tt class="py-op">.</tt><tt class="py-name">flash</tt> <tt class="py-op">=</tt> <tt class="py-name">message_onfailure</tt> </tt>
 
6717
<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">onfailure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6718
<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">                <tt class="py-name">onfailure</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
6719
<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
6720
</div><a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line"> </tt>
 
6721
<a name="FORM.process"></a><div id="FORM.process-def"><a name="L1921"></a><tt class="py-lineno">1921</tt> <a class="py-toggle" href="#" id="FORM.process-toggle" onclick="return toggle('FORM.process');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.FORM-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6722
</div><div id="FORM.process-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="FORM.process-expanded"><a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
6723
<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line"><tt class="py-docstring">        Perform the .validate() method but returns the form</tt> </tt>
 
6724
<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6725
<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line"><tt class="py-docstring">        Usage in controllers:</tt> </tt>
 
6726
<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line"><tt class="py-docstring">        # directly on return</tt> </tt>
 
6727
<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
 
6728
<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line"><tt class="py-docstring">            #some code here</tt> </tt>
 
6729
<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=FORM(...).process(...))</tt> </tt>
 
6730
<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6731
<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line"><tt class="py-docstring">        You can use it with FORM, SQLFORM or FORM based plugins</tt> </tt>
 
6732
<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6733
<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line"><tt class="py-docstring">        Examples:</tt> </tt>
 
6734
<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"><tt class="py-docstring">        #response.flash messages</tt> </tt>
 
6735
<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
 
6736
<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line"><tt class="py-docstring">            form = SQLFORM(db.table).process(message_onsuccess='Sucess!')</tt> </tt>
 
6737
<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line"><tt class="py-docstring">            retutn dict(form=form)</tt> </tt>
 
6738
<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6739
<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line"><tt class="py-docstring">        # callback function</tt> </tt>
 
6740
<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line"><tt class="py-docstring">        # callback receives True or False as first arg, and a list of args.</tt> </tt>
 
6741
<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line"><tt class="py-docstring">        def my_callback(status, msg):</tt> </tt>
 
6742
<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line"><tt class="py-docstring">           response.flash = "Success! "+msg if status else "Errors occured"</tt> </tt>
 
6743
<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6744
<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line"><tt class="py-docstring">        # after argument can be 'flash' to response.flash messages</tt> </tt>
 
6745
<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line"><tt class="py-docstring">        # or a function name to use as callback or None to do nothing.</tt> </tt>
 
6746
<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line"><tt class="py-docstring">        def action():</tt> </tt>
 
6747
<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line"><tt class="py-docstring">            return dict(form=SQLFORM(db.table).process(onsuccess=my_callback)</tt> </tt>
 
6748
<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
6749
<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">        <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'dbio'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-450', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'dbio'</tt><tt class="py-op">,</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> <tt class="py-comment"># necessary for SQLHTML forms</tt> </tt>
 
6750
<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name" targets="Method web2py.gluon.dal.Field.validate()=web2py.gluon.dal.Field-class.html#validate,Method web2py.gluon.dal.GAEDecimalProperty.validate()=web2py.gluon.dal.GAEDecimalProperty-class.html#validate,Method web2py.gluon.html.FORM.validate()=web2py.gluon.html.FORM-class.html#validate"><a title="web2py.gluon.dal.Field.validate
6680
6751
web2py.gluon.dal.GAEDecimalProperty.validate
6681
 
web2py.gluon.html.FORM.validate" class="py-name" href="#" onclick="return doclink('link-443', 'validate', 'link-443');">validate</a></tt><tt class="py-op">(</tt><tt id="link-444" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-444', 'values', 'link-387');">values</a></tt><tt class="py-op">=</tt><tt id="link-445" class="py-name"><a title="web2py.gluon.rocket.Headers.values" class="py-name" href="#" onclick="return doclink('link-445', 'values', 'link-387');">values</a></tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">=</tt><tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
6682
 
<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
6683
 
</div></div><a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line"> </tt>
6684
 
<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line"> </tt>
6685
 
<a name="BEAUTIFY"></a><div id="BEAUTIFY-def"><a name="L1911"></a><tt class="py-lineno">1911</tt> <a class="py-toggle" href="#" id="BEAUTIFY-toggle" onclick="return toggle('BEAUTIFY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html">BEAUTIFY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6686
 
</div><div id="BEAUTIFY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BEAUTIFY-expanded"><a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line"> </tt>
6687
 
<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
6688
 
<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
6689
 
<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6690
 
<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; BEAUTIFY(['a', 'b', {'hello': 'world'}]).xml()</tt> </tt>
6691
 
<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;div&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;a&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;b&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;&lt;table&gt;&lt;tr&gt;&lt;td style="font-weight:bold;"&gt;hello&lt;/td&gt;&lt;td valign="top"&gt;:&lt;/td&gt;&lt;td&gt;&lt;div&gt;world&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;'</tt> </tt>
6692
 
<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6693
 
<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"><tt class="py-docstring">    turns any list, dictionary, etc into decent looking html.</tt> </tt>
6694
 
<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line"><tt class="py-docstring">    Two special attributes are</tt> </tt>
6695
 
<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line"><tt class="py-docstring">    :sorted: a function that takes the dict and returned sorted keys</tt> </tt>
6696
 
<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line"><tt class="py-docstring">    :keyfilter: a funciton that takes a key and returns its representation</tt> </tt>
6697
 
<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line"><tt class="py-docstring">                or None if the key is to be skipped. By default key[:1]=='_' is skipped.</tt> </tt>
6698
 
<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
6699
 
<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line"> </tt>
6700
 
<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">    <tt id="link-446" class="py-name"><a title="web2py.gluon.html.A.tag
 
6752
web2py.gluon.html.FORM.validate" class="py-name" href="#" onclick="return doclink('link-451', 'validate', 'link-451');">validate</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
 
6753
<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
 
6754
</div></div><a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line"> </tt>
 
6755
<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line"> </tt>
 
6756
<a name="BEAUTIFY"></a><div id="BEAUTIFY-def"><a name="L1954"></a><tt class="py-lineno">1954</tt> <a class="py-toggle" href="#" id="BEAUTIFY-toggle" onclick="return toggle('BEAUTIFY');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html">BEAUTIFY</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6757
</div><div id="BEAUTIFY-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BEAUTIFY-expanded"><a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line"> </tt>
 
6758
<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
6759
<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line"><tt class="py-docstring">    example::</tt> </tt>
 
6760
<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6761
<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; BEAUTIFY(['a', 'b', {'hello': 'world'}]).xml()</tt> </tt>
 
6762
<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line"><tt class="py-docstring">        '&lt;div&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;a&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;b&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;&lt;table&gt;&lt;tr&gt;&lt;td style="font-weight:bold;"&gt;hello&lt;/td&gt;&lt;td valign="top"&gt;:&lt;/td&gt;&lt;td&gt;&lt;div&gt;world&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;'</tt> </tt>
 
6763
<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6764
<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line"><tt class="py-docstring">    turns any list, dictionary, etc into decent looking html.</tt> </tt>
 
6765
<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line"><tt class="py-docstring">    Two special attributes are</tt> </tt>
 
6766
<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line"><tt class="py-docstring">    :sorted: a function that takes the dict and returned sorted keys</tt> </tt>
 
6767
<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line"><tt class="py-docstring">    :keyfilter: a funciton that takes a key and returns its representation</tt> </tt>
 
6768
<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line"><tt class="py-docstring">                or None if the key is to be skipped. By default key[:1]=='_' is skipped.</tt> </tt>
 
6769
<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
6770
<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line"> </tt>
 
6771
<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">    <tt id="link-452" class="py-name"><a title="web2py.gluon.html.A.tag
6701
6772
web2py.gluon.html.B.tag
6702
6773
web2py.gluon.html.BEAUTIFY.tag
6703
6774
web2py.gluon.html.BODY.tag
6752
6823
web2py.gluon.html.TR.tag
6753
6824
web2py.gluon.html.TT.tag
6754
6825
web2py.gluon.html.UL.tag
6755
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-446', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
6756
 
<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line"> </tt>
6757
 
<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
6758
 
<a name="BEAUTIFY.no_underscore"></a><div id="BEAUTIFY.no_underscore-def"><a name="L1929"></a><tt class="py-lineno">1929</tt> <a class="py-toggle" href="#" id="BEAUTIFY.no_underscore-toggle" onclick="return toggle('BEAUTIFY.no_underscore');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html#no_underscore">no_underscore</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6759
 
</div><div id="BEAUTIFY.no_underscore-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BEAUTIFY.no_underscore-expanded"><a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key</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>
6760
 
<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
6761
 
<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
6762
 
</div><a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line"> </tt>
6763
 
<a name="BEAUTIFY.__init__"></a><div id="BEAUTIFY.__init__-def"><a name="L1934"></a><tt class="py-lineno">1934</tt> <a class="py-toggle" href="#" id="BEAUTIFY.__init__-toggle" onclick="return toggle('BEAUTIFY.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">component</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6764
 
</div><div id="BEAUTIFY.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BEAUTIFY.__init__-expanded"><a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">component</tt><tt class="py-op">]</tt> </tt>
6765
 
<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt> </tt>
6766
 
<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt class="py-name">sorter</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-447', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'sorted'</tt><tt class="py-op">,</tt><tt class="py-name">sorted</tt><tt class="py-op">)</tt> </tt>
6767
 
<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt class="py-name">keyfilter</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-448" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-448', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'keyfilter'</tt><tt class="py-op">,</tt><tt id="link-449" class="py-name" targets="Class web2py.gluon.html.BEAUTIFY=web2py.gluon.html.BEAUTIFY-class.html"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-449', 'BEAUTIFY', 'link-449');">BEAUTIFY</a></tt><tt class="py-op">.</tt><tt id="link-450" class="py-name" targets="Static Method web2py.gluon.html.BEAUTIFY.no_underscore()=web2py.gluon.html.BEAUTIFY-class.html#no_underscore"><a title="web2py.gluon.html.BEAUTIFY.no_underscore" class="py-name" href="#" onclick="return doclink('link-450', 'no_underscore', 'link-450');">no_underscore</a></tt><tt class="py-op">)</tt> </tt>
6768
 
<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
6769
 
<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
6770
 
<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line">        <tt class="py-name">level</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'level'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-451', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'level'</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
6771
 
<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6772
 
<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">            <tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">'i'</tt> </tt>
6773
 
<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">level</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
6774
 
<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
6775
 
<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
6776
 
<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
6826
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-452', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
 
6827
<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line"> </tt>
 
6828
<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
 
6829
<a name="BEAUTIFY.no_underscore"></a><div id="BEAUTIFY.no_underscore-def"><a name="L1972"></a><tt class="py-lineno">1972</tt> <a class="py-toggle" href="#" id="BEAUTIFY.no_underscore-toggle" onclick="return toggle('BEAUTIFY.no_underscore');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html#no_underscore">no_underscore</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6830
</div><div id="BEAUTIFY.no_underscore-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BEAUTIFY.no_underscore-expanded"><a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key</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>
 
6831
<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
6832
<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
 
6833
</div><a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line"> </tt>
 
6834
<a name="BEAUTIFY.__init__"></a><div id="BEAUTIFY.__init__-def"><a name="L1977"></a><tt class="py-lineno">1977</tt> <a class="py-toggle" href="#" id="BEAUTIFY.__init__-toggle" onclick="return toggle('BEAUTIFY.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.BEAUTIFY-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">component</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">attributes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6835
</div><div id="BEAUTIFY.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BEAUTIFY.__init__-expanded"><a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">component</tt><tt class="py-op">]</tt> </tt>
 
6836
<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt> </tt>
 
6837
<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt class="py-name">sorter</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-453', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'sorted'</tt><tt class="py-op">,</tt><tt class="py-name">sorted</tt><tt class="py-op">)</tt> </tt>
 
6838
<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">        <tt class="py-name">keyfilter</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-454" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-454', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'keyfilter'</tt><tt class="py-op">,</tt><tt id="link-455" class="py-name" targets="Class web2py.gluon.html.BEAUTIFY=web2py.gluon.html.BEAUTIFY-class.html"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-455', 'BEAUTIFY', 'link-455');">BEAUTIFY</a></tt><tt class="py-op">.</tt><tt id="link-456" class="py-name" targets="Static Method web2py.gluon.html.BEAUTIFY.no_underscore()=web2py.gluon.html.BEAUTIFY-class.html#no_underscore"><a title="web2py.gluon.html.BEAUTIFY.no_underscore" class="py-name" href="#" onclick="return doclink('link-456', 'no_underscore', 'link-456');">no_underscore</a></tt><tt class="py-op">)</tt> </tt>
 
6839
<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6840
<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">        <tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
6841
<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">        <tt class="py-name">level</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'level'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">attributes</tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-457', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'level'</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
 
6842
<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
6843
<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">            <tt class="py-name">attributes</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">'i'</tt> </tt>
 
6844
<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">level</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 
6845
<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
 
6846
<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt><tt class="py-op">:</tt> </tt>
 
6847
<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-458" class="py-name"><a title="web2py.gluon.dal.Rows.xml
6777
6848
web2py.gluon.html.A.xml
6778
6849
web2py.gluon.html.CODE.xml
6779
6850
web2py.gluon.html.DIV.xml
6791
6862
web2py.gluon.languages.lazyT.xml
6792
6863
web2py.gluon.serializers.xml
6793
6864
web2py.gluon.tools.Recaptcha.xml
6794
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-452', 'xml', 'link-15');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6795
 
<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6865
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-458', 'xml', 'link-15');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6866
<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="web2py.gluon.html.DIV.append
6796
6867
web2py.gluon.template.BlockNode.append
6797
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-453', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
6798
 
<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
6799
 
<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'keys'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-454" class="py-name" targets="Method web2py.gluon.rocket.Headers.keys()=web2py.gluon.rocket.Headers-class.html#keys,Method web2py.gluon.tools.PluginManager.keys()=web2py.gluon.tools.PluginManager-class.html#keys"><a title="web2py.gluon.rocket.Headers.keys
6800
 
web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-454', 'keys', 'link-454');">keys</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6801
 
<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">                <tt id="link-455" class="py-name" targets="Method web2py.gluon.tools.Crud.rows()=web2py.gluon.tools.Crud-class.html#rows"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-455', 'rows', 'link-455');">rows</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
6802
 
<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
6803
 
<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">                    <tt id="link-456" class="py-name"><a title="web2py.gluon.rocket.Headers.keys
6804
 
web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-456', 'keys', 'link-454');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">sorter</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sorter</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">c</tt> </tt>
6805
 
<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-457" class="py-name"><a title="web2py.gluon.rocket.Headers.keys
6806
 
web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-457', 'keys', 'link-454');">keys</a></tt><tt class="py-op">:</tt> </tt>
6807
 
<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">keyfilter</tt><tt class="py-op">:</tt> </tt>
6808
 
<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">                            <tt class="py-name">filtered_key</tt> <tt class="py-op">=</tt> <tt class="py-name">keyfilter</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
6809
 
<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6810
 
<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">                            <tt class="py-name">filtered_key</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
6811
 
<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">filtered_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
6812
 
<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line">                            <tt class="py-keyword">continue</tt> </tt>
6813
 
<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">                        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
6814
 
<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-458" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.types
 
6868
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-459', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
 
6869
<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
 
6870
<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-string">'keys'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-460" class="py-name" targets="Method web2py.gluon.tools.PluginManager.keys()=web2py.gluon.tools.PluginManager-class.html#keys"><a title="web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-460', 'keys', 'link-460');">keys</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6871
<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">                <tt id="link-461" class="py-name" targets="Method web2py.gluon.tools.Crud.rows()=web2py.gluon.tools.Crud-class.html#rows"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-461', 'rows', 'link-461');">rows</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
6872
<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
6873
<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">                    <tt id="link-462" class="py-name"><a title="web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-462', 'keys', 'link-460');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">sorter</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sorter</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">c</tt> </tt>
 
6874
<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-463" class="py-name"><a title="web2py.gluon.tools.PluginManager.keys" class="py-name" href="#" onclick="return doclink('link-463', 'keys', 'link-460');">keys</a></tt><tt class="py-op">:</tt> </tt>
 
6875
<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt><tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">keyfilter</tt><tt class="py-op">:</tt> </tt>
 
6876
<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">                            <tt class="py-name">filtered_key</tt> <tt class="py-op">=</tt> <tt class="py-name">keyfilter</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
 
6877
<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6878
<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">                            <tt class="py-name">filtered_key</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
 
6879
<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">filtered_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
6880
<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">                            <tt class="py-keyword">continue</tt> </tt>
 
6881
<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">                        <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
 
6882
<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-464" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.types
6815
6883
web2py.gluon.dal.CouchDBAdapter.types
6816
6884
web2py.gluon.dal.DB2Adapter.types
6817
6885
web2py.gluon.dal.FireBirdAdapter.types
6826
6894
web2py.gluon.dal.OracleAdapter.types
6827
6895
web2py.gluon.dal.PostgreSQLAdapter.types
6828
6896
web2py.gluon.dal.SAPDBAdapter.types
6829
 
web2py.gluon.dal.TeradataAdapter.types" class="py-name" href="#" onclick="return doclink('link-458', 'types', 'link-0');">types</a></tt><tt class="py-op">.</tt><tt class="py-name">LambdaType</tt><tt class="py-op">:</tt> </tt>
6830
 
<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">                            <tt class="py-keyword">continue</tt> </tt>
6831
 
<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">                        <tt id="link-459" class="py-name"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-459', 'rows', 'link-455');">rows</a></tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="web2py.gluon.html.DIV.append
6832
 
web2py.gluon.template.BlockNode.append
6833
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-460', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-461" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-461', 'TR', 'link-311');">TR</a></tt><tt class="py-op">(</tt><tt id="link-462" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-462', 'TD', 'link-306');">TD</a></tt><tt class="py-op">(</tt><tt class="py-name">filtered_key</tt><tt class="py-op">,</tt> <tt class="py-name">_style</tt><tt class="py-op">=</tt><tt class="py-string">'font-weight:bold;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
6834
 
<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">                                       <tt id="link-463" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-463', 'TD', 'link-306');">TD</a></tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt><tt class="py-name">_valign</tt><tt class="py-op">=</tt><tt class="py-string">'top'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
6835
 
<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">                                       <tt id="link-464" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-464', 'TD', 'link-306');">TD</a></tt><tt class="py-op">(</tt><tt id="link-465" class="py-name"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-465', 'BEAUTIFY', 'link-449');">BEAUTIFY</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6836
 
<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">                    <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="web2py.gluon.html.DIV.append
6837
 
web2py.gluon.template.BlockNode.append
6838
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-466', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name" targets="Class web2py.gluon.html.TABLE=web2py.gluon.html.TABLE-class.html"><a title="web2py.gluon.html.TABLE" class="py-name" href="#" onclick="return doclink('link-467', 'TABLE', 'link-467');">TABLE</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt id="link-468" class="py-name"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-468', 'rows', 'link-455');">rows</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6839
 
<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">                    <tt class="py-keyword">continue</tt> </tt>
6840
 
<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
6841
 
<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
6842
 
<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6843
 
<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-469" class="py-name"><a title="web2py.gluon.html.DIV.append
6844
 
web2py.gluon.template.BlockNode.append
6845
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-469', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6846
 
<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6847
 
<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="web2py.gluon.html.DIV.append
6848
 
web2py.gluon.template.BlockNode.append
6849
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-470', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-471" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-471', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6850
 
<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6851
 
<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">                <tt id="link-472" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-472', 'items', 'link-29');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-473" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-473', 'TR', 'link-311');">TR</a></tt><tt class="py-op">(</tt><tt id="link-474" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-474', 'TD', 'link-306');">TD</a></tt><tt class="py-op">(</tt><tt id="link-475" class="py-name"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-475', 'BEAUTIFY', 'link-449');">BEAUTIFY</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6852
 
<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">                         <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
6853
 
<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="web2py.gluon.html.DIV.append
6854
 
web2py.gluon.template.BlockNode.append
6855
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-476', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-477" class="py-name"><a title="web2py.gluon.html.TABLE" class="py-name" href="#" onclick="return doclink('link-477', 'TABLE', 'link-467');">TABLE</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt id="link-478" class="py-name"><a title="web2py.gluon.rocket.Headers.items" class="py-name" href="#" onclick="return doclink('link-478', 'items', 'link-29');">items</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6856
 
<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">cgi</tt><tt class="py-op">.</tt><tt class="py-name">FieldStorage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6857
 
<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="web2py.gluon.html.DIV.append
6858
 
web2py.gluon.template.BlockNode.append
6859
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-479', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'FieldStorage object'</tt><tt class="py-op">)</tt> </tt>
6860
 
<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6861
 
<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="web2py.gluon.html.DIV.append
6862
 
web2py.gluon.template.BlockNode.append
6863
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-480', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6864
 
<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
6865
 
</div></div><a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line"> </tt>
6866
 
<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line"> </tt>
6867
 
<a name="MENU"></a><div id="MENU-def"><a name="L1986"></a><tt class="py-lineno">1986</tt> <a class="py-toggle" href="#" id="MENU-toggle" onclick="return toggle('MENU');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html">MENU</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6868
 
</div><div id="MENU-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MENU-expanded"><a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
6869
 
<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line"><tt class="py-docstring">    Used to build menus</tt> </tt>
6870
 
<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6871
 
<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"><tt class="py-docstring">    Optional arguments</tt> </tt>
6872
 
<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line"><tt class="py-docstring">      _class: defaults to 'web2py-menu web2py-menu-vertical'</tt> </tt>
6873
 
<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line"><tt class="py-docstring">      ul_class: defaults to 'web2py-menu-vertical'</tt> </tt>
6874
 
<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line"><tt class="py-docstring">      li_class: defaults to 'web2py-menu-expand'</tt> </tt>
6875
 
<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
6876
 
<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
6877
 
<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line"><tt class="py-docstring">        menu = MENU([['name', False, URL(...), [submenu]], ...])</tt> </tt>
6878
 
<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line"><tt class="py-docstring">        {{=menu}}</tt> </tt>
6879
 
<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
6880
 
<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line"> </tt>
6881
 
<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">    <tt id="link-481" class="py-name"><a title="web2py.gluon.html.A.tag
 
6897
web2py.gluon.dal.TeradataAdapter.types" class="py-name" href="#" onclick="return doclink('link-464', 'types', 'link-0');">types</a></tt><tt class="py-op">.</tt><tt class="py-name">LambdaType</tt><tt class="py-op">:</tt> </tt>
 
6898
<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">                            <tt class="py-keyword">continue</tt> </tt>
 
6899
<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">                        <tt id="link-465" class="py-name"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-465', 'rows', 'link-461');">rows</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6900
web2py.gluon.template.BlockNode.append
 
6901
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-466', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-467', 'TR', 'link-301');">TR</a></tt><tt class="py-op">(</tt><tt id="link-468" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-468', 'TD', 'link-296');">TD</a></tt><tt class="py-op">(</tt><tt class="py-name">filtered_key</tt><tt class="py-op">,</tt> <tt class="py-name">_style</tt><tt class="py-op">=</tt><tt class="py-string">'font-weight:bold;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 
6902
<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">                                       <tt id="link-469" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-469', 'TD', 'link-296');">TD</a></tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt><tt class="py-name">_valign</tt><tt class="py-op">=</tt><tt class="py-string">'top'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 
6903
<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">                                       <tt id="link-470" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-470', 'TD', 'link-296');">TD</a></tt><tt class="py-op">(</tt><tt id="link-471" class="py-name"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-471', 'BEAUTIFY', 'link-455');">BEAUTIFY</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6904
<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">                    <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6905
web2py.gluon.template.BlockNode.append
 
6906
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-472', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-473" class="py-name" targets="Class web2py.gluon.html.TABLE=web2py.gluon.html.TABLE-class.html"><a title="web2py.gluon.html.TABLE" class="py-name" href="#" onclick="return doclink('link-473', 'TABLE', 'link-473');">TABLE</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt id="link-474" class="py-name"><a title="web2py.gluon.tools.Crud.rows" class="py-name" href="#" onclick="return doclink('link-474', 'rows', 'link-461');">rows</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6907
<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">                    <tt class="py-keyword">continue</tt> </tt>
 
6908
<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
6909
<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
 
6910
<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6911
<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6912
web2py.gluon.template.BlockNode.append
 
6913
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-475', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6914
<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6915
<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6916
web2py.gluon.template.BlockNode.append
 
6917
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-476', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-477', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6918
<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6919
<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">                <tt class="py-name">items</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-478" class="py-name"><a title="web2py.gluon.html.TR" class="py-name" href="#" onclick="return doclink('link-478', 'TR', 'link-301');">TR</a></tt><tt class="py-op">(</tt><tt id="link-479" class="py-name"><a title="web2py.gluon.html.TD" class="py-name" href="#" onclick="return doclink('link-479', 'TD', 'link-296');">TD</a></tt><tt class="py-op">(</tt><tt id="link-480" class="py-name"><a title="web2py.gluon.html.BEAUTIFY" class="py-name" href="#" onclick="return doclink('link-480', 'BEAUTIFY', 'link-455');">BEAUTIFY</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6920
<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">                         <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
 
6921
<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6922
web2py.gluon.template.BlockNode.append
 
6923
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-481', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-482" class="py-name"><a title="web2py.gluon.html.TABLE" class="py-name" href="#" onclick="return doclink('link-482', 'TABLE', 'link-473');">TABLE</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">items</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6924
<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">cgi</tt><tt class="py-op">.</tt><tt class="py-name">FieldStorage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6925
<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6926
web2py.gluon.template.BlockNode.append
 
6927
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-483', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'FieldStorage object'</tt><tt class="py-op">)</tt> </tt>
 
6928
<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
6929
<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">                <tt class="py-name">components</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="web2py.gluon.html.DIV.append
 
6930
web2py.gluon.template.BlockNode.append
 
6931
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-484', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
6932
<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">components</tt> <tt class="py-op">=</tt> <tt class="py-name">components</tt> </tt>
 
6933
</div></div><a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line"> </tt>
 
6934
<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line"> </tt>
 
6935
<a name="MENU"></a><div id="MENU-def"><a name="L2029"></a><tt class="py-lineno">2029</tt> <a class="py-toggle" href="#" id="MENU-toggle" onclick="return toggle('MENU');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html">MENU</a><tt class="py-op">(</tt><tt class="py-base-class">DIV</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
6936
</div><div id="MENU-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MENU-expanded"><a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
6937
<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line"><tt class="py-docstring">    Used to build menus</tt> </tt>
 
6938
<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6939
<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line"><tt class="py-docstring">    Optional arguments</tt> </tt>
 
6940
<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line"><tt class="py-docstring">      _class: defaults to 'web2py-menu web2py-menu-vertical'</tt> </tt>
 
6941
<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line"><tt class="py-docstring">      ul_class: defaults to 'web2py-menu-vertical'</tt> </tt>
 
6942
<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line"><tt class="py-docstring">      li_class: defaults to 'web2py-menu-expand'</tt> </tt>
 
6943
<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
6944
<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
 
6945
<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line"><tt class="py-docstring">        menu = MENU([['name', False, URL(...), [submenu]], ...])</tt> </tt>
 
6946
<a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line"><tt class="py-docstring">        {{=menu}}</tt> </tt>
 
6947
<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
6948
<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line"> </tt>
 
6949
<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">    <tt id="link-485" class="py-name"><a title="web2py.gluon.html.A.tag
6882
6950
web2py.gluon.html.B.tag
6883
6951
web2py.gluon.html.BEAUTIFY.tag
6884
6952
web2py.gluon.html.BODY.tag
6933
7001
web2py.gluon.html.TR.tag
6934
7002
web2py.gluon.html.TT.tag
6935
7003
web2py.gluon.html.UL.tag
6936
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-481', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ul'</tt> </tt>
6937
 
<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line"> </tt>
6938
 
<a name="MENU.__init__"></a><div id="MENU.__init__-def"><a name="L2002"></a><tt class="py-lineno">2002</tt> <a class="py-toggle" href="#" id="MENU.__init__-toggle" onclick="return toggle('MENU.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#__init__">__init__</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 class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6939
 
</div><div id="MENU.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.__init__-expanded"><a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt> </tt>
6940
 
<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> </tt>
6941
 
<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6942
 
<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu web2py-menu-vertical'</tt> </tt>
6943
 
<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'ul_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6944
 
<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'ul_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-vertical'</tt> </tt>
6945
 
<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'li_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6946
 
<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-expand'</tt> </tt>
6947
 
<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'li_active'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
6948
 
<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-active'</tt> </tt>
6949
 
</div><a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line"> </tt>
6950
 
<a name="MENU.serialize"></a><div id="MENU.serialize-def"><a name="L2014"></a><tt class="py-lineno">2014</tt> <a class="py-toggle" href="#" id="MENU.serialize-toggle" onclick="return toggle('MENU.serialize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#serialize">serialize</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-param">level</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6951
 
</div><div id="MENU.serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.serialize-expanded"><a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">level</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
6952
 
<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">            <tt class="py-name">ul</tt> <tt class="py-op">=</tt> <tt id="link-482" class="py-name" targets="Class web2py.gluon.html.UL=web2py.gluon.html.UL-class.html"><a title="web2py.gluon.html.UL" class="py-name" href="#" onclick="return doclink('link-482', 'UL', 'link-482');">UL</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
6953
 
<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6954
 
<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">            <tt class="py-name">ul</tt> <tt class="py-op">=</tt> <tt id="link-483" class="py-name"><a title="web2py.gluon.html.UL" class="py-name" href="#" onclick="return doclink('link-483', 'UL', 'link-482');">UL</a></tt><tt class="py-op">(</tt><tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'ul_class'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
6955
 
<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
6956
 
<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt id="link-484" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-484', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">active</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
6957
 
<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">link</tt><tt class="py-op">,</tt><tt id="link-485" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
6958
 
web2py.gluon.dal.NoSQLAdapter.DIV
6959
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-485', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6960
 
<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-486" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-486', 'LI', 'link-299');">LI</a></tt><tt class="py-op">(</tt><tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
6961
 
<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">'no_link_url'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'no_link_url'</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">link</tt><tt class="py-op">:</tt> </tt>
6962
 
<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-487" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-487', 'LI', 'link-299');">LI</a></tt><tt class="py-op">(</tt><tt id="link-488" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
6963
 
web2py.gluon.dal.NoSQLAdapter.DIV
6964
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-488', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">(</tt><tt id="link-489" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-489', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6965
 
<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">link</tt><tt class="py-op">:</tt> </tt>
6966
 
<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-490" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-490', 'LI', 'link-299');">LI</a></tt><tt class="py-op">(</tt><tt id="link-491" class="py-name" targets="Class web2py.gluon.html.A=web2py.gluon.html.A-class.html"><a title="web2py.gluon.html.A" class="py-name" href="#" onclick="return doclink('link-491', 'A', 'link-491');">A</a></tt><tt class="py-op">(</tt><tt id="link-492" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-492', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">_href</tt><tt class="py-op">=</tt><tt class="py-name">link</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6967
 
<a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6968
 
<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-493" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-493', 'LI', 'link-299');">LI</a></tt><tt class="py-op">(</tt><tt id="link-494" class="py-name"><a title="web2py.gluon.html.A" class="py-name" href="#" onclick="return doclink('link-494', 'A', 'link-491');">A</a></tt><tt class="py-op">(</tt><tt id="link-495" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-495', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">_href</tt><tt class="py-op">=</tt><tt class="py-string">'#'</tt><tt class="py-op">,</tt> </tt>
6969
 
<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line">                          <tt class="py-name">_onclick</tt><tt class="py-op">=</tt><tt class="py-string">'javascript:void(0);return false;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6970
 
<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-496" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-496', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">3</tt> <tt class="py-keyword">and</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
6971
 
<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">                <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_class'</tt><tt class="py-op">]</tt> </tt>
6972
 
<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">                <tt class="py-name">li</tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="web2py.gluon.html.DIV.append
6973
 
web2py.gluon.template.BlockNode.append
6974
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-497', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-498" class="py-name" targets="Method web2py.gluon.html.MENU.serialize()=web2py.gluon.html.MENU-class.html#serialize"><a title="web2py.gluon.html.MENU.serialize" class="py-name" href="#" onclick="return doclink('link-498', 'serialize', 'link-498');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">level</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
6975
 
<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'active_url'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'active_url'</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6976
 
<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
6977
 
<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line">                    <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> </tt>
6978
 
<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
6979
 
<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">                    <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> </tt>
6980
 
<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">            <tt class="py-name">ul</tt><tt class="py-op">.</tt><tt id="link-499" class="py-name"><a title="web2py.gluon.html.DIV.append
6981
 
web2py.gluon.template.BlockNode.append
6982
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-499', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">li</tt><tt class="py-op">)</tt> </tt>
6983
 
<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ul</tt> </tt>
6984
 
</div><a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line"> </tt>
6985
 
<a name="MENU.xml"></a><div id="MENU.xml-def"><a name="L2041"></a><tt class="py-lineno">2041</tt> <a class="py-toggle" href="#" id="MENU.xml-toggle" onclick="return toggle('MENU.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
6986
 
</div><div id="MENU.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.xml-expanded"><a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="web2py.gluon.html.MENU.serialize" class="py-name" href="#" onclick="return doclink('link-500', 'serialize', 'link-498');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="web2py.gluon.dal.Rows.xml
6987
 
web2py.gluon.html.A.xml
6988
 
web2py.gluon.html.CODE.xml
6989
 
web2py.gluon.html.DIV.xml
6990
 
web2py.gluon.html.FORM.xml
6991
 
web2py.gluon.html.HTML.xml
6992
 
web2py.gluon.html.INPUT.xml
6993
 
web2py.gluon.html.MARKMIN.xml
6994
 
web2py.gluon.html.MENU.xml
6995
 
web2py.gluon.html.P.xml
6996
 
web2py.gluon.html.SCRIPT.xml
6997
 
web2py.gluon.html.STYLE.xml
6998
 
web2py.gluon.html.XHTML.xml
6999
 
web2py.gluon.html.XML.xml
7000
 
web2py.gluon.html.XmlComponent.xml
7001
 
web2py.gluon.languages.lazyT.xml
7002
 
web2py.gluon.serializers.xml
7003
 
web2py.gluon.tools.Recaptcha.xml
7004
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-501', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
7005
 
</div></div><a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line"> </tt>
 
7004
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-485', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'ul'</tt> </tt>
7006
7005
<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line"> </tt>
7007
 
<a name="embed64"></a><div id="embed64-def"><a name="L2045"></a><tt class="py-lineno">2045</tt> <a class="py-toggle" href="#" id="embed64-toggle" onclick="return toggle('embed64');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#embed64">embed64</a><tt class="py-op">(</tt> </tt>
7008
 
<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">    <tt class="py-param">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
7009
 
<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">    <tt class="py-param">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
7010
 
<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">    <tt class="py-param">data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
7011
 
<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">    <tt class="py-param">extension</tt> <tt class="py-op">=</tt> <tt class="py-string">'image/gif'</tt><tt class="py-op">,</tt> </tt>
7012
 
<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">    <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7013
 
</div><div id="embed64-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="embed64-expanded"><a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
7014
 
<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line"><tt class="py-docstring">    helper to encode the provided (binary) data into base64.</tt> </tt>
7015
 
<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
7016
 
<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line"><tt class="py-docstring">    :param filename: if provided, opens and reads this file in 'rb' mode</tt> </tt>
7017
 
<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line"><tt class="py-docstring">    :param file: if provided, reads this file</tt> </tt>
7018
 
<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line"><tt class="py-docstring">    :param data: if provided, uses the provided data</tt> </tt>
7019
 
<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
7020
 
<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line"> </tt>
7021
 
<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">and</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name" targets="Static Method web2py.gluon.dal.DatabaseStoredFile.exists()=web2py.gluon.dal.DatabaseStoredFile-class.html#exists"><a title="web2py.gluon.dal.DatabaseStoredFile.exists" class="py-name" href="#" onclick="return doclink('link-502', 'exists', 'link-502');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7022
 
<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
7023
 
<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Method web2py.gluon.dal.DatabaseStoredFile.read()=web2py.gluon.dal.DatabaseStoredFile-class.html#read,Method web2py.gluon.debug.Pipe.read()=web2py.gluon.debug.Pipe-class.html#read,Method web2py.gluon.languages.lazyT.read()=web2py.gluon.languages.lazyT-class.html#read,Method web2py.gluon.rocket.ChunkedReader.read()=web2py.gluon.rocket.ChunkedReader-class.html#read,Method web2py.gluon.tools.Crud.read()=web2py.gluon.tools.Crud-class.html#read"><a title="web2py.gluon.dal.DatabaseStoredFile.read
 
7006
<a name="MENU.__init__"></a><div id="MENU.__init__-def"><a name="L2045"></a><tt class="py-lineno">2045</tt> <a class="py-toggle" href="#" id="MENU.__init__-toggle" onclick="return toggle('MENU.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#__init__">__init__</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 class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7007
</div><div id="MENU.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.__init__-expanded"><a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt> </tt>
 
7008
<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-op">=</tt> <tt class="py-name">args</tt> </tt>
 
7009
<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
7010
<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu web2py-menu-vertical'</tt> </tt>
 
7011
<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'ul_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
7012
<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'ul_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-vertical'</tt> </tt>
 
7013
<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'li_class'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
7014
<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-expand'</tt> </tt>
 
7015
<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'li_active'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">:</tt> </tt>
 
7016
<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'web2py-menu-active'</tt> </tt>
 
7017
</div><a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line"> </tt>
 
7018
<a name="MENU.serialize"></a><div id="MENU.serialize-def"><a name="L2057"></a><tt class="py-lineno">2057</tt> <a class="py-toggle" href="#" id="MENU.serialize-toggle" onclick="return toggle('MENU.serialize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#serialize">serialize</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-param">level</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7019
</div><div id="MENU.serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.serialize-expanded"><a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">level</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 
7020
<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">            <tt class="py-name">ul</tt> <tt class="py-op">=</tt> <tt id="link-486" class="py-name" targets="Class web2py.gluon.html.UL=web2py.gluon.html.UL-class.html"><a title="web2py.gluon.html.UL" class="py-name" href="#" onclick="return doclink('link-486', 'UL', 'link-486');">UL</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt><tt class="py-op">)</tt> </tt>
 
7021
<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7022
<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line">            <tt class="py-name">ul</tt> <tt class="py-op">=</tt> <tt id="link-487" class="py-name"><a title="web2py.gluon.html.UL" class="py-name" href="#" onclick="return doclink('link-487', 'UL', 'link-486');">UL</a></tt><tt class="py-op">(</tt><tt class="py-name">_class</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'ul_class'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
7023
<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
 
7024
<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt id="link-488" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-488', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">active</tt><tt class="py-op">,</tt> <tt class="py-name">link</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
 
7025
<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">link</tt><tt class="py-op">,</tt><tt id="link-489" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
7026
web2py.gluon.dal.NoSQLAdapter.DIV
 
7027
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-489', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7028
<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-490" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-490', 'LI', 'link-289');">LI</a></tt><tt class="py-op">(</tt><tt class="py-name">link</tt><tt class="py-op">)</tt> </tt>
 
7029
<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">'no_link_url'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'no_link_url'</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">link</tt><tt class="py-op">:</tt> </tt>
 
7030
<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-491" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-491', 'LI', 'link-289');">LI</a></tt><tt class="py-op">(</tt><tt id="link-492" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
7031
web2py.gluon.dal.NoSQLAdapter.DIV
 
7032
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-492', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-493', 'name', 'link-74');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7033
<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">link</tt><tt class="py-op">:</tt> </tt>
 
7034
<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-494" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-494', 'LI', 'link-289');">LI</a></tt><tt class="py-op">(</tt><tt id="link-495" class="py-name" targets="Class web2py.gluon.html.A=web2py.gluon.html.A-class.html"><a title="web2py.gluon.html.A" class="py-name" href="#" onclick="return doclink('link-495', 'A', 'link-495');">A</a></tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-496', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">_href</tt><tt class="py-op">=</tt><tt class="py-name">link</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7035
<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7036
<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">                <tt class="py-name">li</tt> <tt class="py-op">=</tt> <tt id="link-497" class="py-name"><a title="web2py.gluon.html.LI" class="py-name" href="#" onclick="return doclink('link-497', 'LI', 'link-289');">LI</a></tt><tt class="py-op">(</tt><tt id="link-498" class="py-name"><a title="web2py.gluon.html.A" class="py-name" href="#" onclick="return doclink('link-498', 'A', 'link-495');">A</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-499', 'name', 'link-74');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">_href</tt><tt class="py-op">=</tt><tt class="py-string">'#'</tt><tt class="py-op">,</tt> </tt>
 
7037
<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">                          <tt class="py-name">_onclick</tt><tt class="py-op">=</tt><tt class="py-string">'javascript:void(0);return false;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7038
<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-500" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-500', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">3</tt> <tt class="py-keyword">and</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
7039
<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">                <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_class'</tt><tt class="py-op">]</tt> </tt>
 
7040
<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">                <tt class="py-name">li</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7041
web2py.gluon.template.BlockNode.append
 
7042
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-501', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name" targets="Method web2py.gluon.html.MENU.serialize()=web2py.gluon.html.MENU-class.html#serialize"><a title="web2py.gluon.html.MENU.serialize" class="py-name" href="#" onclick="return doclink('link-502', 'serialize', 'link-502');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">level</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7043
<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'active_url'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attributes</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'active_url'</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">link</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7044
<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
 
7045
<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">                    <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> </tt>
 
7046
<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7047
<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">                    <tt class="py-name">li</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'li_active'</tt><tt class="py-op">]</tt> </tt>
 
7048
<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">            <tt class="py-name">ul</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7049
web2py.gluon.template.BlockNode.append
 
7050
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-503', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">li</tt><tt class="py-op">)</tt> </tt>
 
7051
<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">ul</tt> </tt>
 
7052
</div><a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line"> </tt>
 
7053
<a name="MENU.xml"></a><div id="MENU.xml-def"><a name="L2084"></a><tt class="py-lineno">2084</tt> <a class="py-toggle" href="#" id="MENU.xml-toggle" onclick="return toggle('MENU.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MENU-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7054
</div><div id="MENU.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MENU.xml-expanded"><a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="web2py.gluon.html.MENU.serialize" class="py-name" href="#" onclick="return doclink('link-504', 'serialize', 'link-502');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-505" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
7055
web2py.gluon.html.A.xml
 
7056
web2py.gluon.html.CODE.xml
 
7057
web2py.gluon.html.DIV.xml
 
7058
web2py.gluon.html.FORM.xml
 
7059
web2py.gluon.html.HTML.xml
 
7060
web2py.gluon.html.INPUT.xml
 
7061
web2py.gluon.html.MARKMIN.xml
 
7062
web2py.gluon.html.MENU.xml
 
7063
web2py.gluon.html.P.xml
 
7064
web2py.gluon.html.SCRIPT.xml
 
7065
web2py.gluon.html.STYLE.xml
 
7066
web2py.gluon.html.XHTML.xml
 
7067
web2py.gluon.html.XML.xml
 
7068
web2py.gluon.html.XmlComponent.xml
 
7069
web2py.gluon.languages.lazyT.xml
 
7070
web2py.gluon.serializers.xml
 
7071
web2py.gluon.tools.Recaptcha.xml
 
7072
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-505', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
7073
</div></div><a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"> </tt>
 
7074
<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line"> </tt>
 
7075
<a name="embed64"></a><div id="embed64-def"><a name="L2088"></a><tt class="py-lineno">2088</tt> <a class="py-toggle" href="#" id="embed64-toggle" onclick="return toggle('embed64');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#embed64">embed64</a><tt class="py-op">(</tt> </tt>
 
7076
<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">    <tt class="py-param">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
7077
<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">    <tt class="py-param">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
7078
<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">    <tt class="py-param">data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 
7079
<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">    <tt class="py-param">extension</tt> <tt class="py-op">=</tt> <tt class="py-string">'image/gif'</tt><tt class="py-op">,</tt> </tt>
 
7080
<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">    <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7081
</div><div id="embed64-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="embed64-expanded"><a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
7082
<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line"><tt class="py-docstring">    helper to encode the provided (binary) data into base64.</tt> </tt>
 
7083
<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
7084
<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line"><tt class="py-docstring">    :param filename: if provided, opens and reads this file in 'rb' mode</tt> </tt>
 
7085
<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line"><tt class="py-docstring">    :param file: if provided, reads this file</tt> </tt>
 
7086
<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line"><tt class="py-docstring">    :param data: if provided, uses the provided data</tt> </tt>
 
7087
<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
7088
<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line"> </tt>
 
7089
<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">and</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-506" class="py-name" targets="Static Method web2py.gluon.dal.DatabaseStoredFile.exists()=web2py.gluon.dal.DatabaseStoredFile-class.html#exists"><a title="web2py.gluon.dal.DatabaseStoredFile.exists" class="py-name" href="#" onclick="return doclink('link-506', 'exists', 'link-506');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7090
<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">        <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
 
7091
<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name" targets="Method web2py.gluon.dal.DatabaseStoredFile.read()=web2py.gluon.dal.DatabaseStoredFile-class.html#read,Method web2py.gluon.debug.Pipe.read()=web2py.gluon.debug.Pipe-class.html#read,Method web2py.gluon.languages.lazyT.read()=web2py.gluon.languages.lazyT-class.html#read,Method web2py.gluon.rocket.ChunkedReader.read()=web2py.gluon.rocket.ChunkedReader-class.html#read,Variable web2py.gluon.rocket.Connection.read=web2py.gluon.rocket.Connection-class.html#read,Method web2py.gluon.rocket.LimitingFileWrapper.read()=web2py.gluon.rocket.LimitingFileWrapper-class.html#read,Method web2py.gluon.tools.Crud.read()=web2py.gluon.tools.Crud-class.html#read"><a title="web2py.gluon.dal.DatabaseStoredFile.read
7024
7092
web2py.gluon.debug.Pipe.read
7025
7093
web2py.gluon.languages.lazyT.read
7026
7094
web2py.gluon.rocket.ChunkedReader.read
7027
 
web2py.gluon.tools.Crud.read" class="py-name" href="#" onclick="return doclink('link-503', 'read', 'link-503');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
7028
 
<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.close()=web2py.gluon.dal.BaseAdapter-class.html#close,Method web2py.gluon.dal.DatabaseStoredFile.close()=web2py.gluon.dal.DatabaseStoredFile-class.html#close,Method web2py.gluon.dal.NoSQLAdapter.close()=web2py.gluon.dal.NoSQLAdapter-class.html#close,Method web2py.gluon.rocket.Connection.close()=web2py.gluon.rocket.Connection-class.html#close"><a title="web2py.gluon.dal.BaseAdapter.close
 
7095
web2py.gluon.rocket.Connection.read
 
7096
web2py.gluon.rocket.LimitingFileWrapper.read
 
7097
web2py.gluon.tools.Crud.read" class="py-name" href="#" onclick="return doclink('link-507', 'read', 'link-507');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
7098
<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name" targets="Method web2py.gluon.dal.BaseAdapter.close()=web2py.gluon.dal.BaseAdapter-class.html#close,Method web2py.gluon.dal.DatabaseStoredFile.close()=web2py.gluon.dal.DatabaseStoredFile-class.html#close,Method web2py.gluon.dal.NoSQLAdapter.close()=web2py.gluon.dal.NoSQLAdapter-class.html#close,Method web2py.gluon.rocket.Connection.close()=web2py.gluon.rocket.Connection-class.html#close,Method web2py.gluon.rocket.FileLikeSocket.close()=web2py.gluon.rocket.FileLikeSocket-class.html#close"><a title="web2py.gluon.dal.BaseAdapter.close
7029
7099
web2py.gluon.dal.DatabaseStoredFile.close
7030
7100
web2py.gluon.dal.NoSQLAdapter.close
7031
 
web2py.gluon.rocket.Connection.close" class="py-name" href="#" onclick="return doclink('link-504', 'close', 'link-504');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
7032
 
<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
7033
 
<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'data:%s;base64,%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">extension</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
7034
 
</div><a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line"> </tt>
7035
 
<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line"> </tt>
7036
 
<a name="test"></a><div id="test-def"><a name="L2067"></a><tt class="py-lineno">2067</tt> <a class="py-toggle" href="#" id="test-toggle" onclick="return toggle('test');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#test">test</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7037
 
</div><div id="test-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test-expanded"><a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
7038
 
<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
7039
 
<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
7040
 
<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; from validators import *</tt> </tt>
7041
 
<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(A('click me', _href=URL(a='a', c='b', f='c')), BR(), HR(), DIV(SPAN(\"World\"), _class='unknown')).xml()</tt> </tt>
7042
 
<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;a href=\"/a/b/c\"&gt;click me&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div class=\"unknown\"&gt;&lt;span&gt;World&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
7043
 
<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(UL(\"doc\",\"cat\",\"mouse\")).xml()</tt> </tt>
7044
 
<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;ul&gt;&lt;li&gt;doc&lt;/li&gt;&lt;li&gt;cat&lt;/li&gt;&lt;li&gt;mouse&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</tt> </tt>
7045
 
<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(UL(\"doc\", LI(\"cat\", _class='feline'), 18)).xml()</tt> </tt>
7046
 
<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;ul&gt;&lt;li&gt;doc&lt;/li&gt;&lt;li class=\"feline\"&gt;cat&lt;/li&gt;&lt;li&gt;18&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</tt> </tt>
7047
 
<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print TABLE(['a', 'b', 'c'], TR('d', 'e', 'f'), TR(TD(1), TD(2), TD(3))).xml()</tt> </tt>
7048
 
<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;table&gt;&lt;tr&gt;&lt;td&gt;a&lt;/td&gt;&lt;td&gt;b&lt;/td&gt;&lt;td&gt;c&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;d&lt;/td&gt;&lt;td&gt;e&lt;/td&gt;&lt;td&gt;f&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</tt> </tt>
7049
 
<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(_type='text', _name='myvar', requires=IS_EXPR('int(value)&lt;10')))</tt> </tt>
7050
 
<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
7051
 
<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" /&gt;&lt;/form&gt;</tt> </tt>
7052
 
<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'34'}, formname=None)</tt> </tt>
7053
 
<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line"><tt class="py-docstring">    False</tt> </tt>
7054
 
<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
7055
 
<a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action="" enctype="multipart/form-data" method="post"&gt;&lt;input name="myvar" type="text" value="34" /&gt;&lt;div class="error" id="myvar__error"&gt;invalid expression&lt;/div&gt;&lt;/form&gt;</tt> </tt>
7056
 
<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'4'}, formname=None, keepvalues=True)</tt> </tt>
7057
 
<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line"><tt class="py-docstring">    True</tt> </tt>
7058
 
<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
7059
 
<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" value=\"4\" /&gt;&lt;/form&gt;</tt> </tt>
7060
 
<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(SELECT('cat', 'dog', _name='myvar'))</tt> </tt>
7061
 
<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'dog'}, formname=None, keepvalues=True)</tt> </tt>
7062
 
<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line"><tt class="py-docstring">    True</tt> </tt>
7063
 
<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
7064
 
<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;select name=\"myvar\"&gt;&lt;option value=\"cat\"&gt;cat&lt;/option&gt;&lt;option selected=\"selected\" value=\"dog\"&gt;dog&lt;/option&gt;&lt;/select&gt;&lt;/form&gt;</tt> </tt>
7065
 
<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(_type='text', _name='myvar', requires=IS_MATCH('^\w+$', 'only alphanumeric!')))</tt> </tt>
7066
 
<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'as df'}, formname=None)</tt> </tt>
7067
 
<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line"><tt class="py-docstring">    False</tt> </tt>
7068
 
<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
7069
 
<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" value=\"as df\" /&gt;&lt;div class=\"error\" id=\"myvar__error\"&gt;only alphanumeric!&lt;/div&gt;&lt;/form&gt;</tt> </tt>
7070
 
<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; session={}</tt> </tt>
7071
 
<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(value=\"Hello World\", _name=\"var\", requires=IS_MATCH('^\w+$')))</tt> </tt>
7072
 
<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; if form.accepts({}, session,formname=None): print 'passed'</tt> </tt>
7073
 
<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; if form.accepts({'var':'test ', '_formkey': session['_formkey[None]']}, session, formname=None): print 'passed'</tt> </tt>
7074
 
<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
7075
 
<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
7076
 
</div><a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line"> </tt>
7077
 
<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line"> </tt>
7078
 
<a name="web2pyHTMLParser"></a><div id="web2pyHTMLParser-def"><a name="L2109"></a><tt class="py-lineno">2109</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser-toggle" onclick="return toggle('web2pyHTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html">web2pyHTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7079
 
</div><div id="web2pyHTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="web2pyHTMLParser-expanded"><a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
7080
 
<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line"><tt class="py-docstring">    obj = web2pyHTMLParser(text) parses and html/xml text into web2py helpers.</tt> </tt>
7081
 
<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line"><tt class="py-docstring">    obj.tree contains the root of the tree, and tree can be manipulated</tt> </tt>
 
7101
web2py.gluon.rocket.Connection.close
 
7102
web2py.gluon.rocket.FileLikeSocket.close" class="py-name" href="#" onclick="return doclink('link-508', 'close', 'link-508');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
7103
<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
7104
<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'data:%s;base64,%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">extension</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
 
7105
</div><a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line"> </tt>
 
7106
<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line"> </tt>
 
7107
<a name="test"></a><div id="test-def"><a name="L2110"></a><tt class="py-lineno">2110</tt> <a class="py-toggle" href="#" id="test-toggle" onclick="return toggle('test');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#test">test</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7108
</div><div id="test-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test-expanded"><a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
7109
<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
7082
7110
<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
7083
 
<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(web2pyHTMLParser('hello&lt;div a="b" c=3&gt;wor&amp;lt;ld&lt;span&gt;xxx&lt;/span&gt;y&lt;script/&gt;yy&lt;/div&gt;zzz').tree)</tt> </tt>
7084
 
<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line"><tt class="py-docstring">    'hello&lt;div a="b" c="3"&gt;wor&amp;lt;ld&lt;span&gt;xxx&lt;/span&gt;y&lt;script&gt;&lt;/script&gt;yy&lt;/div&gt;zzz'</tt> </tt>
7085
 
<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(web2pyHTMLParser('&lt;div&gt;a&lt;span&gt;b&lt;/div&gt;c').tree)</tt> </tt>
7086
 
<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line"><tt class="py-docstring">    '&lt;div&gt;a&lt;span&gt;b&lt;/span&gt;&lt;/div&gt;c'</tt> </tt>
7087
 
<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; tree = web2pyHTMLParser('hello&lt;div a="b"&gt;world&lt;/div&gt;').tree</tt> </tt>
7088
 
<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; tree.element(_a='b')['_c']=5</tt> </tt>
7089
 
<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(tree)</tt> </tt>
7090
 
<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line"><tt class="py-docstring">    'hello&lt;div a="b" c="5"&gt;world&lt;/div&gt;'</tt> </tt>
7091
 
<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
7092
 
<a name="web2pyHTMLParser.__init__"></a><div id="web2pyHTMLParser.__init__-def"><a name="L2123"></a><tt class="py-lineno">2123</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.__init__-toggle" onclick="return toggle('web2pyHTMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">closed</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'input'</tt><tt class="py-op">,</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7093
 
</div><div id="web2pyHTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.__init__-expanded"><a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">        <tt class="py-name">HTMLParser</tt><tt class="py-op">.</tt><tt id="link-505" class="py-name"><a title="web2py.gluon.cache.Cache.__init__
 
7111
<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; from validators import *</tt> </tt>
 
7112
<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(A('click me', _href=URL(a='a', c='b', f='c')), BR(), HR(), DIV(SPAN(\"World\"), _class='unknown')).xml()</tt> </tt>
 
7113
<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;a href=\"/a/b/c\"&gt;click me&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div class=\"unknown\"&gt;&lt;span&gt;World&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</tt> </tt>
 
7114
<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(UL(\"doc\",\"cat\",\"mouse\")).xml()</tt> </tt>
 
7115
<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;ul&gt;&lt;li&gt;doc&lt;/li&gt;&lt;li&gt;cat&lt;/li&gt;&lt;li&gt;mouse&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</tt> </tt>
 
7116
<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print DIV(UL(\"doc\", LI(\"cat\", _class='feline'), 18)).xml()</tt> </tt>
 
7117
<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;div&gt;&lt;ul&gt;&lt;li&gt;doc&lt;/li&gt;&lt;li class=\"feline\"&gt;cat&lt;/li&gt;&lt;li&gt;18&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</tt> </tt>
 
7118
<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print TABLE(['a', 'b', 'c'], TR('d', 'e', 'f'), TR(TD(1), TD(2), TD(3))).xml()</tt> </tt>
 
7119
<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;table&gt;&lt;tr&gt;&lt;td&gt;a&lt;/td&gt;&lt;td&gt;b&lt;/td&gt;&lt;td&gt;c&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;d&lt;/td&gt;&lt;td&gt;e&lt;/td&gt;&lt;td&gt;f&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</tt> </tt>
 
7120
<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(_type='text', _name='myvar', requires=IS_EXPR('int(value)&lt;10')))</tt> </tt>
 
7121
<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
 
7122
<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" /&gt;&lt;/form&gt;</tt> </tt>
 
7123
<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'34'}, formname=None)</tt> </tt>
 
7124
<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line"><tt class="py-docstring">    False</tt> </tt>
 
7125
<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
 
7126
<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action="" enctype="multipart/form-data" method="post"&gt;&lt;input name="myvar" type="text" value="34" /&gt;&lt;div class="error" id="myvar__error"&gt;invalid expression&lt;/div&gt;&lt;/form&gt;</tt> </tt>
 
7127
<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'4'}, formname=None, keepvalues=True)</tt> </tt>
 
7128
<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line"><tt class="py-docstring">    True</tt> </tt>
 
7129
<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
 
7130
<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" value=\"4\" /&gt;&lt;/form&gt;</tt> </tt>
 
7131
<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(SELECT('cat', 'dog', _name='myvar'))</tt> </tt>
 
7132
<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'dog'}, formname=None, keepvalues=True)</tt> </tt>
 
7133
<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line"><tt class="py-docstring">    True</tt> </tt>
 
7134
<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
 
7135
<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;select name=\"myvar\"&gt;&lt;option value=\"cat\"&gt;cat&lt;/option&gt;&lt;option selected=\"selected\" value=\"dog\"&gt;dog&lt;/option&gt;&lt;/select&gt;&lt;/form&gt;</tt> </tt>
 
7136
<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(_type='text', _name='myvar', requires=IS_MATCH('^\w+$', 'only alphanumeric!')))</tt> </tt>
 
7137
<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.accepts({'myvar':'as df'}, formname=None)</tt> </tt>
 
7138
<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line"><tt class="py-docstring">    False</tt> </tt>
 
7139
<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; print form.xml()</tt> </tt>
 
7140
<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;form action=\"\" enctype=\"multipart/form-data\" method=\"post\"&gt;&lt;input name=\"myvar\" type=\"text\" value=\"as df\" /&gt;&lt;div class=\"error\" id=\"myvar__error\"&gt;only alphanumeric!&lt;/div&gt;&lt;/form&gt;</tt> </tt>
 
7141
<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; session={}</tt> </tt>
 
7142
<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; form=FORM(INPUT(value=\"Hello World\", _name=\"var\", requires=IS_MATCH('^\w+$')))</tt> </tt>
 
7143
<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; if form.accepts({}, session,formname=None): print 'passed'</tt> </tt>
 
7144
<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; if form.accepts({'var':'test ', '_formkey': session['_formkey[None]']}, session, formname=None): print 'passed'</tt> </tt>
 
7145
<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
7146
<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
 
7147
</div><a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line"> </tt>
 
7148
<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line"> </tt>
 
7149
<a name="web2pyHTMLParser"></a><div id="web2pyHTMLParser-def"><a name="L2152"></a><tt class="py-lineno">2152</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser-toggle" onclick="return toggle('web2pyHTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html">web2pyHTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7150
</div><div id="web2pyHTMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="web2pyHTMLParser-expanded"><a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
7151
<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line"><tt class="py-docstring">    obj = web2pyHTMLParser(text) parses and html/xml text into web2py helpers.</tt> </tt>
 
7152
<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line"><tt class="py-docstring">    obj.tree contains the root of the tree, and tree can be manipulated</tt> </tt>
 
7153
<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 
7154
<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(web2pyHTMLParser('hello&lt;div a="b" c=3&gt;wor&amp;lt;ld&lt;span&gt;xxx&lt;/span&gt;y&lt;script/&gt;yy&lt;/div&gt;zzz').tree)</tt> </tt>
 
7155
<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line"><tt class="py-docstring">    'hello&lt;div a="b" c="3"&gt;wor&amp;lt;ld&lt;span&gt;xxx&lt;/span&gt;y&lt;script&gt;&lt;/script&gt;yy&lt;/div&gt;zzz'</tt> </tt>
 
7156
<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(web2pyHTMLParser('&lt;div&gt;a&lt;span&gt;b&lt;/div&gt;c').tree)</tt> </tt>
 
7157
<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line"><tt class="py-docstring">    '&lt;div&gt;a&lt;span&gt;b&lt;/span&gt;&lt;/div&gt;c'</tt> </tt>
 
7158
<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; tree = web2pyHTMLParser('hello&lt;div a="b"&gt;world&lt;/div&gt;').tree</tt> </tt>
 
7159
<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; tree.element(_a='b')['_c']=5</tt> </tt>
 
7160
<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; str(tree)</tt> </tt>
 
7161
<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line"><tt class="py-docstring">    'hello&lt;div a="b" c="5"&gt;world&lt;/div&gt;'</tt> </tt>
 
7162
<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
7163
<a name="web2pyHTMLParser.__init__"></a><div id="web2pyHTMLParser.__init__-def"><a name="L2166"></a><tt class="py-lineno">2166</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.__init__-toggle" onclick="return toggle('web2pyHTMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">closed</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'input'</tt><tt class="py-op">,</tt><tt class="py-string">'link'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7164
</div><div id="web2pyHTMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.__init__-expanded"><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt class="py-name">HTMLParser</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="web2py.gluon.cache.Cache.__init__
7094
7165
web2py.gluon.cache.CacheAbstract.__init__
7095
7166
web2py.gluon.cache.CacheInRam.__init__
7096
7167
web2py.gluon.cache.CacheOnDisk.__init__
7105
7176
web2py.gluon.dal.DatabaseStoredFile.__init__
7106
7177
web2py.gluon.dal.Expression.__init__
7107
7178
web2py.gluon.dal.Field.__init__
 
7179
web2py.gluon.dal.FieldLazy.__init__
 
7180
web2py.gluon.dal.FieldVirtual.__init__
7108
7181
web2py.gluon.dal.FireBirdAdapter.__init__
7109
7182
web2py.gluon.dal.FireBirdEmbeddedAdapter.__init__
7110
7183
web2py.gluon.dal.GAEDecimalProperty.__init__
7129
7202
web2py.gluon.dal.Set.__init__
7130
7203
web2py.gluon.dal.Table.__init__
7131
7204
web2py.gluon.dal.TeradataAdapter.__init__
 
7205
web2py.gluon.dal.VirtualCommand.__init__
7132
7206
web2py.gluon.debug.Pipe.__init__
7133
7207
web2py.gluon.globals.Request.__init__
7134
7208
web2py.gluon.globals.Response.__init__
7155
7229
web2py.gluon.rewrite.MapUrlOut.__init__
7156
7230
web2py.gluon.rocket.ChunkedReader.__init__
7157
7231
web2py.gluon.rocket.Connection.__init__
7158
 
web2py.gluon.rocket.FileWrapper.__init__
7159
 
web2py.gluon.rocket.Headers.__init__
 
7232
web2py.gluon.rocket.FileLikeSocket.__init__
 
7233
web2py.gluon.rocket.FileSystemWorker.__init__
 
7234
web2py.gluon.rocket.FuturesMiddleware.__init__
 
7235
web2py.gluon.rocket.LimitingFileWrapper.__init__
7160
7236
web2py.gluon.rocket.Listener.__init__
7161
7237
web2py.gluon.rocket.Monitor.__init__
7162
7238
web2py.gluon.rocket.Rocket.__init__
7163
7239
web2py.gluon.rocket.ThreadPool.__init__
 
7240
web2py.gluon.rocket.WSGIExecutor.__init__
 
7241
web2py.gluon.rocket.WSGIFuture.__init__
7164
7242
web2py.gluon.rocket.WSGIWorker.__init__
7165
7243
web2py.gluon.rocket.Worker.__init__
 
7244
web2py.gluon.rocket._WorkItem.__init__
7166
7245
web2py.gluon.sanitizer.XssCleaner.__init__
 
7246
web2py.gluon.scheduler.MetaScheduler.__init__
 
7247
web2py.gluon.scheduler.Scheduler.__init__
 
7248
web2py.gluon.scheduler.TYPE.__init__
 
7249
web2py.gluon.scheduler.Task.__init__
 
7250
web2py.gluon.scheduler.TaskReport.__init__
7167
7251
web2py.gluon.sqlhtml.AutocompleteWidget.__init__
7168
7252
web2py.gluon.sqlhtml.SQLFORM.__init__
7169
7253
web2py.gluon.sqlhtml.SQLTABLE.__init__
7214
7298
web2py.gluon.validators.IS_URL.__init__
7215
7299
web2py.gluon.widget.IO.__init__
7216
7300
web2py.gluon.widget.web2pyDialog.__init__
7217
 
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-505', '__init__', 'link-395');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
7218
 
<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt id="link-506" class="py-name"><a title="web2py.gluon.TAG
 
7301
web2py.gluon.winservice.Service.__init__" class="py-name" href="#" onclick="return doclink('link-509', '__init__', 'link-382');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 
7302
<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt id="link-510" class="py-name"><a title="web2py.gluon.TAG
7219
7303
web2py.gluon.html.TAG
7220
 
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-506', 'TAG', 'link-218');">TAG</a></tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
7221
 
<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-op">=</tt> <tt class="py-name">closed</tt> </tt>
7222
 
<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-507" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-507', 'x', 'link-25');">x</a></tt> <tt class="py-keyword">for</tt> <tt id="link-508" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-508', 'x', 'link-25');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">__all__</tt> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt id="link-509" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-509', 'x', 'link-25');">x</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-510" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
 
7304
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-510', 'TAG', 'link-208');">TAG</a></tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
7305
<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-op">=</tt> <tt class="py-name">closed</tt> </tt>
 
7306
<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tags</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-511" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-511', 'x', 'link-26');">x</a></tt> <tt class="py-keyword">for</tt> <tt id="link-512" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-512', 'x', 'link-26');">x</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">__all__</tt> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt id="link-513" class="py-name"><a title="sqlite3.dbapi2.x" class="py-name" href="#" onclick="return doclink('link-513', 'x', 'link-26');">x</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-514" class="py-name"><a title="web2py.gluon.dal.BaseAdapter.DIV
7223
7307
web2py.gluon.dal.NoSQLAdapter.DIV
7224
 
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-510', 'DIV', 'link-98');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
7225
 
<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-511" class="py-name" targets="Method web2py.gluon.dal.Rows.last()=web2py.gluon.dal.Rows-class.html#last"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-511', 'last', 'link-511');">last</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
7226
 
<a name="L2129"></a><tt class="py-lineno">2129</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">text</tt><tt class="py-op">)</tt> </tt>
7227
 
</div><a name="web2pyHTMLParser.handle_starttag"></a><div id="web2pyHTMLParser.handle_starttag-def"><a name="L2130"></a><tt class="py-lineno">2130</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_starttag-toggle" onclick="return toggle('web2pyHTMLParser.handle_starttag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html#handle_starttag">handle_starttag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tagname</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7228
 
</div><div id="web2pyHTMLParser.handle_starttag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_starttag-expanded"><a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name" targets="Method web2py.gluon.dal.Expression.upper()=web2py.gluon.dal.Expression-class.html#upper"><a title="web2py.gluon.dal.Expression.upper" class="py-name" href="#" onclick="return doclink('link-512', 'upper', 'link-512');">upper</a></tt><tt class="py-op">(</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">tags</tt><tt class="py-op">:</tt> </tt>
7229
 
<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">            <tt id="link-513" class="py-name"><a title="web2py.gluon.html.A.tag
7230
 
web2py.gluon.html.B.tag
7231
 
web2py.gluon.html.BEAUTIFY.tag
7232
 
web2py.gluon.html.BODY.tag
7233
 
web2py.gluon.html.BR.tag
7234
 
web2py.gluon.html.BUTTON.tag
7235
 
web2py.gluon.html.CAT.tag
7236
 
web2py.gluon.html.CENTER.tag
7237
 
web2py.gluon.html.COL.tag
7238
 
web2py.gluon.html.COLGROUP.tag
7239
 
web2py.gluon.html.DIV.tag
7240
 
web2py.gluon.html.EM.tag
7241
 
web2py.gluon.html.EMBED.tag
7242
 
web2py.gluon.html.FIELDSET.tag
7243
 
web2py.gluon.html.FORM.tag
7244
 
web2py.gluon.html.H1.tag
7245
 
web2py.gluon.html.H2.tag
7246
 
web2py.gluon.html.H3.tag
7247
 
web2py.gluon.html.H4.tag
7248
 
web2py.gluon.html.H5.tag
7249
 
web2py.gluon.html.H6.tag
7250
 
web2py.gluon.html.HEAD.tag
7251
 
web2py.gluon.html.HR.tag
7252
 
web2py.gluon.html.HTML.tag
7253
 
web2py.gluon.html.I.tag
7254
 
web2py.gluon.html.IFRAME.tag
7255
 
web2py.gluon.html.IMG.tag
7256
 
web2py.gluon.html.INPUT.tag
7257
 
web2py.gluon.html.LABEL.tag
7258
 
web2py.gluon.html.LEGEND.tag
7259
 
web2py.gluon.html.LI.tag
7260
 
web2py.gluon.html.LINK.tag
7261
 
web2py.gluon.html.MENU.tag
7262
 
web2py.gluon.html.META.tag
7263
 
web2py.gluon.html.OBJECT.tag
7264
 
web2py.gluon.html.OL.tag
7265
 
web2py.gluon.html.OPTGROUP.tag
7266
 
web2py.gluon.html.OPTION.tag
7267
 
web2py.gluon.html.P.tag
7268
 
web2py.gluon.html.PRE.tag
7269
 
web2py.gluon.html.SCRIPT.tag
7270
 
web2py.gluon.html.SELECT.tag
7271
 
web2py.gluon.html.SPAN.tag
7272
 
web2py.gluon.html.STYLE.tag
7273
 
web2py.gluon.html.TABLE.tag
7274
 
web2py.gluon.html.TBODY.tag
7275
 
web2py.gluon.html.TD.tag
7276
 
web2py.gluon.html.TEXTAREA.tag
7277
 
web2py.gluon.html.TFOOT.tag
7278
 
web2py.gluon.html.TH.tag
7279
 
web2py.gluon.html.THEAD.tag
7280
 
web2py.gluon.html.TITLE.tag
7281
 
web2py.gluon.html.TR.tag
7282
 
web2py.gluon.html.TT.tag
7283
 
web2py.gluon.html.UL.tag
7284
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-513', 'tag', 'link-82');">tag</a></tt><tt class="py-op">=</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">tagname</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="web2py.gluon.dal.Expression.upper" class="py-name" href="#" onclick="return doclink('link-514', 'upper', 'link-512');">upper</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7285
 
<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
7286
 
<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> <tt class="py-name">tagname</tt><tt class="py-op">+=</tt><tt class="py-string">'/'</tt> </tt>
7287
 
<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">            <tt id="link-515" class="py-name"><a title="web2py.gluon.html.A.tag
7288
 
web2py.gluon.html.B.tag
7289
 
web2py.gluon.html.BEAUTIFY.tag
7290
 
web2py.gluon.html.BODY.tag
7291
 
web2py.gluon.html.BR.tag
7292
 
web2py.gluon.html.BUTTON.tag
7293
 
web2py.gluon.html.CAT.tag
7294
 
web2py.gluon.html.CENTER.tag
7295
 
web2py.gluon.html.COL.tag
7296
 
web2py.gluon.html.COLGROUP.tag
7297
 
web2py.gluon.html.DIV.tag
7298
 
web2py.gluon.html.EM.tag
7299
 
web2py.gluon.html.EMBED.tag
7300
 
web2py.gluon.html.FIELDSET.tag
7301
 
web2py.gluon.html.FORM.tag
7302
 
web2py.gluon.html.H1.tag
7303
 
web2py.gluon.html.H2.tag
7304
 
web2py.gluon.html.H3.tag
7305
 
web2py.gluon.html.H4.tag
7306
 
web2py.gluon.html.H5.tag
7307
 
web2py.gluon.html.H6.tag
7308
 
web2py.gluon.html.HEAD.tag
7309
 
web2py.gluon.html.HR.tag
7310
 
web2py.gluon.html.HTML.tag
7311
 
web2py.gluon.html.I.tag
7312
 
web2py.gluon.html.IFRAME.tag
7313
 
web2py.gluon.html.IMG.tag
7314
 
web2py.gluon.html.INPUT.tag
7315
 
web2py.gluon.html.LABEL.tag
7316
 
web2py.gluon.html.LEGEND.tag
7317
 
web2py.gluon.html.LI.tag
7318
 
web2py.gluon.html.LINK.tag
7319
 
web2py.gluon.html.MENU.tag
7320
 
web2py.gluon.html.META.tag
7321
 
web2py.gluon.html.OBJECT.tag
7322
 
web2py.gluon.html.OL.tag
7323
 
web2py.gluon.html.OPTGROUP.tag
7324
 
web2py.gluon.html.OPTION.tag
7325
 
web2py.gluon.html.P.tag
7326
 
web2py.gluon.html.PRE.tag
7327
 
web2py.gluon.html.SCRIPT.tag
7328
 
web2py.gluon.html.SELECT.tag
7329
 
web2py.gluon.html.SPAN.tag
7330
 
web2py.gluon.html.STYLE.tag
7331
 
web2py.gluon.html.TABLE.tag
7332
 
web2py.gluon.html.TBODY.tag
7333
 
web2py.gluon.html.TD.tag
7334
 
web2py.gluon.html.TEXTAREA.tag
7335
 
web2py.gluon.html.TFOOT.tag
7336
 
web2py.gluon.html.TH.tag
7337
 
web2py.gluon.html.THEAD.tag
7338
 
web2py.gluon.html.TITLE.tag
7339
 
web2py.gluon.html.TR.tag
7340
 
web2py.gluon.html.TT.tag
7341
 
web2py.gluon.html.UL.tag
7342
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-515', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-516" class="py-name"><a title="web2py.gluon.TAG
 
7308
web2py.gluon.html.DIV" class="py-name" href="#" onclick="return doclink('link-514', 'DIV', 'link-97');">DIV</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
 
7309
<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-515" class="py-name" targets="Method web2py.gluon.dal.Rows.last()=web2py.gluon.dal.Rows-class.html#last"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-515', 'last', 'link-515');">last</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 
7310
<a name="L2172"></a><tt class="py-lineno">2172</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">text</tt><tt class="py-op">)</tt> </tt>
 
7311
</div><a name="web2pyHTMLParser.handle_starttag"></a><div id="web2pyHTMLParser.handle_starttag-def"><a name="L2173"></a><tt class="py-lineno">2173</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_starttag-toggle" onclick="return toggle('web2pyHTMLParser.handle_starttag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-class.html#handle_starttag">handle_starttag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tagname</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7312
</div><div id="web2pyHTMLParser.handle_starttag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_starttag-expanded"><a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name" targets="Method web2py.gluon.dal.Expression.upper()=web2py.gluon.dal.Expression-class.html#upper"><a title="web2py.gluon.dal.Expression.upper" class="py-name" href="#" onclick="return doclink('link-516', 'upper', 'link-516');">upper</a></tt><tt class="py-op">(</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">tags</tt><tt class="py-op">:</tt> </tt>
 
7313
<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">            <tt id="link-517" class="py-name"><a title="web2py.gluon.html.A.tag
 
7314
web2py.gluon.html.B.tag
 
7315
web2py.gluon.html.BEAUTIFY.tag
 
7316
web2py.gluon.html.BODY.tag
 
7317
web2py.gluon.html.BR.tag
 
7318
web2py.gluon.html.BUTTON.tag
 
7319
web2py.gluon.html.CAT.tag
 
7320
web2py.gluon.html.CENTER.tag
 
7321
web2py.gluon.html.COL.tag
 
7322
web2py.gluon.html.COLGROUP.tag
 
7323
web2py.gluon.html.DIV.tag
 
7324
web2py.gluon.html.EM.tag
 
7325
web2py.gluon.html.EMBED.tag
 
7326
web2py.gluon.html.FIELDSET.tag
 
7327
web2py.gluon.html.FORM.tag
 
7328
web2py.gluon.html.H1.tag
 
7329
web2py.gluon.html.H2.tag
 
7330
web2py.gluon.html.H3.tag
 
7331
web2py.gluon.html.H4.tag
 
7332
web2py.gluon.html.H5.tag
 
7333
web2py.gluon.html.H6.tag
 
7334
web2py.gluon.html.HEAD.tag
 
7335
web2py.gluon.html.HR.tag
 
7336
web2py.gluon.html.HTML.tag
 
7337
web2py.gluon.html.I.tag
 
7338
web2py.gluon.html.IFRAME.tag
 
7339
web2py.gluon.html.IMG.tag
 
7340
web2py.gluon.html.INPUT.tag
 
7341
web2py.gluon.html.LABEL.tag
 
7342
web2py.gluon.html.LEGEND.tag
 
7343
web2py.gluon.html.LI.tag
 
7344
web2py.gluon.html.LINK.tag
 
7345
web2py.gluon.html.MENU.tag
 
7346
web2py.gluon.html.META.tag
 
7347
web2py.gluon.html.OBJECT.tag
 
7348
web2py.gluon.html.OL.tag
 
7349
web2py.gluon.html.OPTGROUP.tag
 
7350
web2py.gluon.html.OPTION.tag
 
7351
web2py.gluon.html.P.tag
 
7352
web2py.gluon.html.PRE.tag
 
7353
web2py.gluon.html.SCRIPT.tag
 
7354
web2py.gluon.html.SELECT.tag
 
7355
web2py.gluon.html.SPAN.tag
 
7356
web2py.gluon.html.STYLE.tag
 
7357
web2py.gluon.html.TABLE.tag
 
7358
web2py.gluon.html.TBODY.tag
 
7359
web2py.gluon.html.TD.tag
 
7360
web2py.gluon.html.TEXTAREA.tag
 
7361
web2py.gluon.html.TFOOT.tag
 
7362
web2py.gluon.html.TH.tag
 
7363
web2py.gluon.html.THEAD.tag
 
7364
web2py.gluon.html.TITLE.tag
 
7365
web2py.gluon.html.TR.tag
 
7366
web2py.gluon.html.TT.tag
 
7367
web2py.gluon.html.UL.tag
 
7368
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-517', 'tag', 'link-82');">tag</a></tt><tt class="py-op">=</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">tagname</tt><tt class="py-op">.</tt><tt id="link-518" class="py-name"><a title="web2py.gluon.dal.Expression.upper" class="py-name" href="#" onclick="return doclink('link-518', 'upper', 'link-516');">upper</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7369
<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7370
<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> <tt class="py-name">tagname</tt><tt class="py-op">+=</tt><tt class="py-string">'/'</tt> </tt>
 
7371
<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">            <tt id="link-519" class="py-name"><a title="web2py.gluon.html.A.tag
 
7372
web2py.gluon.html.B.tag
 
7373
web2py.gluon.html.BEAUTIFY.tag
 
7374
web2py.gluon.html.BODY.tag
 
7375
web2py.gluon.html.BR.tag
 
7376
web2py.gluon.html.BUTTON.tag
 
7377
web2py.gluon.html.CAT.tag
 
7378
web2py.gluon.html.CENTER.tag
 
7379
web2py.gluon.html.COL.tag
 
7380
web2py.gluon.html.COLGROUP.tag
 
7381
web2py.gluon.html.DIV.tag
 
7382
web2py.gluon.html.EM.tag
 
7383
web2py.gluon.html.EMBED.tag
 
7384
web2py.gluon.html.FIELDSET.tag
 
7385
web2py.gluon.html.FORM.tag
 
7386
web2py.gluon.html.H1.tag
 
7387
web2py.gluon.html.H2.tag
 
7388
web2py.gluon.html.H3.tag
 
7389
web2py.gluon.html.H4.tag
 
7390
web2py.gluon.html.H5.tag
 
7391
web2py.gluon.html.H6.tag
 
7392
web2py.gluon.html.HEAD.tag
 
7393
web2py.gluon.html.HR.tag
 
7394
web2py.gluon.html.HTML.tag
 
7395
web2py.gluon.html.I.tag
 
7396
web2py.gluon.html.IFRAME.tag
 
7397
web2py.gluon.html.IMG.tag
 
7398
web2py.gluon.html.INPUT.tag
 
7399
web2py.gluon.html.LABEL.tag
 
7400
web2py.gluon.html.LEGEND.tag
 
7401
web2py.gluon.html.LI.tag
 
7402
web2py.gluon.html.LINK.tag
 
7403
web2py.gluon.html.MENU.tag
 
7404
web2py.gluon.html.META.tag
 
7405
web2py.gluon.html.OBJECT.tag
 
7406
web2py.gluon.html.OL.tag
 
7407
web2py.gluon.html.OPTGROUP.tag
 
7408
web2py.gluon.html.OPTION.tag
 
7409
web2py.gluon.html.P.tag
 
7410
web2py.gluon.html.PRE.tag
 
7411
web2py.gluon.html.SCRIPT.tag
 
7412
web2py.gluon.html.SELECT.tag
 
7413
web2py.gluon.html.SPAN.tag
 
7414
web2py.gluon.html.STYLE.tag
 
7415
web2py.gluon.html.TABLE.tag
 
7416
web2py.gluon.html.TBODY.tag
 
7417
web2py.gluon.html.TD.tag
 
7418
web2py.gluon.html.TEXTAREA.tag
 
7419
web2py.gluon.html.TFOOT.tag
 
7420
web2py.gluon.html.TH.tag
 
7421
web2py.gluon.html.THEAD.tag
 
7422
web2py.gluon.html.TITLE.tag
 
7423
web2py.gluon.html.TR.tag
 
7424
web2py.gluon.html.TT.tag
 
7425
web2py.gluon.html.UL.tag
 
7426
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-519', 'tag', 'link-82');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-520" class="py-name"><a title="web2py.gluon.TAG
7343
7427
web2py.gluon.html.TAG
7344
 
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-516', 'TAG', 'link-218');">TAG</a></tt><tt class="py-op">[</tt><tt class="py-name">tagname</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
7345
 
<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt><tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">:</tt> <tt id="link-517" class="py-name"><a title="web2py.gluon.html.A.tag
7346
 
web2py.gluon.html.B.tag
7347
 
web2py.gluon.html.BEAUTIFY.tag
7348
 
web2py.gluon.html.BODY.tag
7349
 
web2py.gluon.html.BR.tag
7350
 
web2py.gluon.html.BUTTON.tag
7351
 
web2py.gluon.html.CAT.tag
7352
 
web2py.gluon.html.CENTER.tag
7353
 
web2py.gluon.html.COL.tag
7354
 
web2py.gluon.html.COLGROUP.tag
7355
 
web2py.gluon.html.DIV.tag
7356
 
web2py.gluon.html.EM.tag
7357
 
web2py.gluon.html.EMBED.tag
7358
 
web2py.gluon.html.FIELDSET.tag
7359
 
web2py.gluon.html.FORM.tag
7360
 
web2py.gluon.html.H1.tag
7361
 
web2py.gluon.html.H2.tag
7362
 
web2py.gluon.html.H3.tag
7363
 
web2py.gluon.html.H4.tag
7364
 
web2py.gluon.html.H5.tag
7365
 
web2py.gluon.html.H6.tag
7366
 
web2py.gluon.html.HEAD.tag
7367
 
web2py.gluon.html.HR.tag
7368
 
web2py.gluon.html.HTML.tag
7369
 
web2py.gluon.html.I.tag
7370
 
web2py.gluon.html.IFRAME.tag
7371
 
web2py.gluon.html.IMG.tag
7372
 
web2py.gluon.html.INPUT.tag
7373
 
web2py.gluon.html.LABEL.tag
7374
 
web2py.gluon.html.LEGEND.tag
7375
 
web2py.gluon.html.LI.tag
7376
 
web2py.gluon.html.LINK.tag
7377
 
web2py.gluon.html.MENU.tag
7378
 
web2py.gluon.html.META.tag
7379
 
web2py.gluon.html.OBJECT.tag
7380
 
web2py.gluon.html.OL.tag
7381
 
web2py.gluon.html.OPTGROUP.tag
7382
 
web2py.gluon.html.OPTION.tag
7383
 
web2py.gluon.html.P.tag
7384
 
web2py.gluon.html.PRE.tag
7385
 
web2py.gluon.html.SCRIPT.tag
7386
 
web2py.gluon.html.SELECT.tag
7387
 
web2py.gluon.html.SPAN.tag
7388
 
web2py.gluon.html.STYLE.tag
7389
 
web2py.gluon.html.TABLE.tag
7390
 
web2py.gluon.html.TBODY.tag
7391
 
web2py.gluon.html.TD.tag
7392
 
web2py.gluon.html.TEXTAREA.tag
7393
 
web2py.gluon.html.TFOOT.tag
7394
 
web2py.gluon.html.TH.tag
7395
 
web2py.gluon.html.THEAD.tag
7396
 
web2py.gluon.html.TITLE.tag
7397
 
web2py.gluon.html.TR.tag
7398
 
web2py.gluon.html.TT.tag
7399
 
web2py.gluon.html.UL.tag
7400
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-517', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</tt><tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">value</tt> </tt>
7401
 
<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt id="link-518" class="py-name"><a title="web2py.gluon.html.A.tag
7402
 
web2py.gluon.html.B.tag
7403
 
web2py.gluon.html.BEAUTIFY.tag
7404
 
web2py.gluon.html.BODY.tag
7405
 
web2py.gluon.html.BR.tag
7406
 
web2py.gluon.html.BUTTON.tag
7407
 
web2py.gluon.html.CAT.tag
7408
 
web2py.gluon.html.CENTER.tag
7409
 
web2py.gluon.html.COL.tag
7410
 
web2py.gluon.html.COLGROUP.tag
7411
 
web2py.gluon.html.DIV.tag
7412
 
web2py.gluon.html.EM.tag
7413
 
web2py.gluon.html.EMBED.tag
7414
 
web2py.gluon.html.FIELDSET.tag
7415
 
web2py.gluon.html.FORM.tag
7416
 
web2py.gluon.html.H1.tag
7417
 
web2py.gluon.html.H2.tag
7418
 
web2py.gluon.html.H3.tag
7419
 
web2py.gluon.html.H4.tag
7420
 
web2py.gluon.html.H5.tag
7421
 
web2py.gluon.html.H6.tag
7422
 
web2py.gluon.html.HEAD.tag
7423
 
web2py.gluon.html.HR.tag
7424
 
web2py.gluon.html.HTML.tag
7425
 
web2py.gluon.html.I.tag
7426
 
web2py.gluon.html.IFRAME.tag
7427
 
web2py.gluon.html.IMG.tag
7428
 
web2py.gluon.html.INPUT.tag
7429
 
web2py.gluon.html.LABEL.tag
7430
 
web2py.gluon.html.LEGEND.tag
7431
 
web2py.gluon.html.LI.tag
7432
 
web2py.gluon.html.LINK.tag
7433
 
web2py.gluon.html.MENU.tag
7434
 
web2py.gluon.html.META.tag
7435
 
web2py.gluon.html.OBJECT.tag
7436
 
web2py.gluon.html.OL.tag
7437
 
web2py.gluon.html.OPTGROUP.tag
7438
 
web2py.gluon.html.OPTION.tag
7439
 
web2py.gluon.html.P.tag
7440
 
web2py.gluon.html.PRE.tag
7441
 
web2py.gluon.html.SCRIPT.tag
7442
 
web2py.gluon.html.SELECT.tag
7443
 
web2py.gluon.html.SPAN.tag
7444
 
web2py.gluon.html.STYLE.tag
7445
 
web2py.gluon.html.TABLE.tag
7446
 
web2py.gluon.html.TBODY.tag
7447
 
web2py.gluon.html.TD.tag
7448
 
web2py.gluon.html.TEXTAREA.tag
7449
 
web2py.gluon.html.TFOOT.tag
7450
 
web2py.gluon.html.TH.tag
7451
 
web2py.gluon.html.THEAD.tag
7452
 
web2py.gluon.html.TITLE.tag
7453
 
web2py.gluon.html.TR.tag
7454
 
web2py.gluon.html.TT.tag
7455
 
web2py.gluon.html.UL.tag
7456
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-518', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
7457
 
<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="web2py.gluon.html.DIV.append
7458
 
web2py.gluon.template.BlockNode.append
7459
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-519', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt id="link-520" class="py-name"><a title="web2py.gluon.html.A.tag
7460
 
web2py.gluon.html.B.tag
7461
 
web2py.gluon.html.BEAUTIFY.tag
7462
 
web2py.gluon.html.BODY.tag
7463
 
web2py.gluon.html.BR.tag
7464
 
web2py.gluon.html.BUTTON.tag
7465
 
web2py.gluon.html.CAT.tag
7466
 
web2py.gluon.html.CENTER.tag
7467
 
web2py.gluon.html.COL.tag
7468
 
web2py.gluon.html.COLGROUP.tag
7469
 
web2py.gluon.html.DIV.tag
7470
 
web2py.gluon.html.EM.tag
7471
 
web2py.gluon.html.EMBED.tag
7472
 
web2py.gluon.html.FIELDSET.tag
7473
 
web2py.gluon.html.FORM.tag
7474
 
web2py.gluon.html.H1.tag
7475
 
web2py.gluon.html.H2.tag
7476
 
web2py.gluon.html.H3.tag
7477
 
web2py.gluon.html.H4.tag
7478
 
web2py.gluon.html.H5.tag
7479
 
web2py.gluon.html.H6.tag
7480
 
web2py.gluon.html.HEAD.tag
7481
 
web2py.gluon.html.HR.tag
7482
 
web2py.gluon.html.HTML.tag
7483
 
web2py.gluon.html.I.tag
7484
 
web2py.gluon.html.IFRAME.tag
7485
 
web2py.gluon.html.IMG.tag
7486
 
web2py.gluon.html.INPUT.tag
7487
 
web2py.gluon.html.LABEL.tag
7488
 
web2py.gluon.html.LEGEND.tag
7489
 
web2py.gluon.html.LI.tag
7490
 
web2py.gluon.html.LINK.tag
7491
 
web2py.gluon.html.MENU.tag
7492
 
web2py.gluon.html.META.tag
7493
 
web2py.gluon.html.OBJECT.tag
7494
 
web2py.gluon.html.OL.tag
7495
 
web2py.gluon.html.OPTGROUP.tag
7496
 
web2py.gluon.html.OPTION.tag
7497
 
web2py.gluon.html.P.tag
7498
 
web2py.gluon.html.PRE.tag
7499
 
web2py.gluon.html.SCRIPT.tag
7500
 
web2py.gluon.html.SELECT.tag
7501
 
web2py.gluon.html.SPAN.tag
7502
 
web2py.gluon.html.STYLE.tag
7503
 
web2py.gluon.html.TABLE.tag
7504
 
web2py.gluon.html.TBODY.tag
7505
 
web2py.gluon.html.TD.tag
7506
 
web2py.gluon.html.TEXTAREA.tag
7507
 
web2py.gluon.html.TFOOT.tag
7508
 
web2py.gluon.html.TH.tag
7509
 
web2py.gluon.html.THEAD.tag
7510
 
web2py.gluon.html.TITLE.tag
7511
 
web2py.gluon.html.TR.tag
7512
 
web2py.gluon.html.TT.tag
7513
 
web2py.gluon.html.UL.tag
7514
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-520', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
7515
 
<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-521" class="py-name"><a title="web2py.gluon.html.A.tag
7516
 
web2py.gluon.html.B.tag
7517
 
web2py.gluon.html.BEAUTIFY.tag
7518
 
web2py.gluon.html.BODY.tag
7519
 
web2py.gluon.html.BR.tag
7520
 
web2py.gluon.html.BUTTON.tag
7521
 
web2py.gluon.html.CAT.tag
7522
 
web2py.gluon.html.CENTER.tag
7523
 
web2py.gluon.html.COL.tag
7524
 
web2py.gluon.html.COLGROUP.tag
7525
 
web2py.gluon.html.DIV.tag
7526
 
web2py.gluon.html.EM.tag
7527
 
web2py.gluon.html.EMBED.tag
7528
 
web2py.gluon.html.FIELDSET.tag
7529
 
web2py.gluon.html.FORM.tag
7530
 
web2py.gluon.html.H1.tag
7531
 
web2py.gluon.html.H2.tag
7532
 
web2py.gluon.html.H3.tag
7533
 
web2py.gluon.html.H4.tag
7534
 
web2py.gluon.html.H5.tag
7535
 
web2py.gluon.html.H6.tag
7536
 
web2py.gluon.html.HEAD.tag
7537
 
web2py.gluon.html.HR.tag
7538
 
web2py.gluon.html.HTML.tag
7539
 
web2py.gluon.html.I.tag
7540
 
web2py.gluon.html.IFRAME.tag
7541
 
web2py.gluon.html.IMG.tag
7542
 
web2py.gluon.html.INPUT.tag
7543
 
web2py.gluon.html.LABEL.tag
7544
 
web2py.gluon.html.LEGEND.tag
7545
 
web2py.gluon.html.LI.tag
7546
 
web2py.gluon.html.LINK.tag
7547
 
web2py.gluon.html.MENU.tag
7548
 
web2py.gluon.html.META.tag
7549
 
web2py.gluon.html.OBJECT.tag
7550
 
web2py.gluon.html.OL.tag
7551
 
web2py.gluon.html.OPTGROUP.tag
7552
 
web2py.gluon.html.OPTION.tag
7553
 
web2py.gluon.html.P.tag
7554
 
web2py.gluon.html.PRE.tag
7555
 
web2py.gluon.html.SCRIPT.tag
7556
 
web2py.gluon.html.SELECT.tag
7557
 
web2py.gluon.html.SPAN.tag
7558
 
web2py.gluon.html.STYLE.tag
7559
 
web2py.gluon.html.TABLE.tag
7560
 
web2py.gluon.html.TBODY.tag
7561
 
web2py.gluon.html.TD.tag
7562
 
web2py.gluon.html.TEXTAREA.tag
7563
 
web2py.gluon.html.TFOOT.tag
7564
 
web2py.gluon.html.TH.tag
7565
 
web2py.gluon.html.THEAD.tag
7566
 
web2py.gluon.html.TITLE.tag
7567
 
web2py.gluon.html.TR.tag
7568
 
web2py.gluon.html.TT.tag
7569
 
web2py.gluon.html.UL.tag
7570
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-521', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="web2py.gluon.html.A.tag
7571
 
web2py.gluon.html.B.tag
7572
 
web2py.gluon.html.BEAUTIFY.tag
7573
 
web2py.gluon.html.BODY.tag
7574
 
web2py.gluon.html.BR.tag
7575
 
web2py.gluon.html.BUTTON.tag
7576
 
web2py.gluon.html.CAT.tag
7577
 
web2py.gluon.html.CENTER.tag
7578
 
web2py.gluon.html.COL.tag
7579
 
web2py.gluon.html.COLGROUP.tag
7580
 
web2py.gluon.html.DIV.tag
7581
 
web2py.gluon.html.EM.tag
7582
 
web2py.gluon.html.EMBED.tag
7583
 
web2py.gluon.html.FIELDSET.tag
7584
 
web2py.gluon.html.FORM.tag
7585
 
web2py.gluon.html.H1.tag
7586
 
web2py.gluon.html.H2.tag
7587
 
web2py.gluon.html.H3.tag
7588
 
web2py.gluon.html.H4.tag
7589
 
web2py.gluon.html.H5.tag
7590
 
web2py.gluon.html.H6.tag
7591
 
web2py.gluon.html.HEAD.tag
7592
 
web2py.gluon.html.HR.tag
7593
 
web2py.gluon.html.HTML.tag
7594
 
web2py.gluon.html.I.tag
7595
 
web2py.gluon.html.IFRAME.tag
7596
 
web2py.gluon.html.IMG.tag
7597
 
web2py.gluon.html.INPUT.tag
7598
 
web2py.gluon.html.LABEL.tag
7599
 
web2py.gluon.html.LEGEND.tag
7600
 
web2py.gluon.html.LI.tag
7601
 
web2py.gluon.html.LINK.tag
7602
 
web2py.gluon.html.MENU.tag
7603
 
web2py.gluon.html.META.tag
7604
 
web2py.gluon.html.OBJECT.tag
7605
 
web2py.gluon.html.OL.tag
7606
 
web2py.gluon.html.OPTGROUP.tag
7607
 
web2py.gluon.html.OPTION.tag
7608
 
web2py.gluon.html.P.tag
7609
 
web2py.gluon.html.PRE.tag
7610
 
web2py.gluon.html.SCRIPT.tag
7611
 
web2py.gluon.html.SELECT.tag
7612
 
web2py.gluon.html.SPAN.tag
7613
 
web2py.gluon.html.STYLE.tag
7614
 
web2py.gluon.html.TABLE.tag
7615
 
web2py.gluon.html.TBODY.tag
7616
 
web2py.gluon.html.TD.tag
7617
 
web2py.gluon.html.TEXTAREA.tag
7618
 
web2py.gluon.html.TFOOT.tag
7619
 
web2py.gluon.html.TH.tag
7620
 
web2py.gluon.html.THEAD.tag
7621
 
web2py.gluon.html.TITLE.tag
7622
 
web2py.gluon.html.TR.tag
7623
 
web2py.gluon.html.TT.tag
7624
 
web2py.gluon.html.UL.tag
7625
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-522', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="web2py.gluon.dal.Expression.endswith" class="py-name" href="#" onclick="return doclink('link-523', 'endswith', 'link-27');">endswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7626
 
<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">=</tt><tt id="link-524" class="py-name"><a title="web2py.gluon.html.A.tag
7627
 
web2py.gluon.html.B.tag
7628
 
web2py.gluon.html.BEAUTIFY.tag
7629
 
web2py.gluon.html.BODY.tag
7630
 
web2py.gluon.html.BR.tag
7631
 
web2py.gluon.html.BUTTON.tag
7632
 
web2py.gluon.html.CAT.tag
7633
 
web2py.gluon.html.CENTER.tag
7634
 
web2py.gluon.html.COL.tag
7635
 
web2py.gluon.html.COLGROUP.tag
7636
 
web2py.gluon.html.DIV.tag
7637
 
web2py.gluon.html.EM.tag
7638
 
web2py.gluon.html.EMBED.tag
7639
 
web2py.gluon.html.FIELDSET.tag
7640
 
web2py.gluon.html.FORM.tag
7641
 
web2py.gluon.html.H1.tag
7642
 
web2py.gluon.html.H2.tag
7643
 
web2py.gluon.html.H3.tag
7644
 
web2py.gluon.html.H4.tag
7645
 
web2py.gluon.html.H5.tag
7646
 
web2py.gluon.html.H6.tag
7647
 
web2py.gluon.html.HEAD.tag
7648
 
web2py.gluon.html.HR.tag
7649
 
web2py.gluon.html.HTML.tag
7650
 
web2py.gluon.html.I.tag
7651
 
web2py.gluon.html.IFRAME.tag
7652
 
web2py.gluon.html.IMG.tag
7653
 
web2py.gluon.html.INPUT.tag
7654
 
web2py.gluon.html.LABEL.tag
7655
 
web2py.gluon.html.LEGEND.tag
7656
 
web2py.gluon.html.LI.tag
7657
 
web2py.gluon.html.LINK.tag
7658
 
web2py.gluon.html.MENU.tag
7659
 
web2py.gluon.html.META.tag
7660
 
web2py.gluon.html.OBJECT.tag
7661
 
web2py.gluon.html.OL.tag
7662
 
web2py.gluon.html.OPTGROUP.tag
7663
 
web2py.gluon.html.OPTION.tag
7664
 
web2py.gluon.html.P.tag
7665
 
web2py.gluon.html.PRE.tag
7666
 
web2py.gluon.html.SCRIPT.tag
7667
 
web2py.gluon.html.SELECT.tag
7668
 
web2py.gluon.html.SPAN.tag
7669
 
web2py.gluon.html.STYLE.tag
7670
 
web2py.gluon.html.TABLE.tag
7671
 
web2py.gluon.html.TBODY.tag
7672
 
web2py.gluon.html.TD.tag
7673
 
web2py.gluon.html.TEXTAREA.tag
7674
 
web2py.gluon.html.TFOOT.tag
7675
 
web2py.gluon.html.TH.tag
7676
 
web2py.gluon.html.THEAD.tag
7677
 
web2py.gluon.html.TITLE.tag
7678
 
web2py.gluon.html.TR.tag
7679
 
web2py.gluon.html.TT.tag
7680
 
web2py.gluon.html.UL.tag
7681
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-524', 'tag', 'link-82');">tag</a></tt> </tt>
7682
 
<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
7683
 
<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-525', 'last', 'link-511');">last</a></tt> <tt class="py-op">=</tt> <tt id="link-526" class="py-name"><a title="web2py.gluon.html.A.tag
7684
 
web2py.gluon.html.B.tag
7685
 
web2py.gluon.html.BEAUTIFY.tag
7686
 
web2py.gluon.html.BODY.tag
7687
 
web2py.gluon.html.BR.tag
7688
 
web2py.gluon.html.BUTTON.tag
7689
 
web2py.gluon.html.CAT.tag
7690
 
web2py.gluon.html.CENTER.tag
7691
 
web2py.gluon.html.COL.tag
7692
 
web2py.gluon.html.COLGROUP.tag
7693
 
web2py.gluon.html.DIV.tag
7694
 
web2py.gluon.html.EM.tag
7695
 
web2py.gluon.html.EMBED.tag
7696
 
web2py.gluon.html.FIELDSET.tag
7697
 
web2py.gluon.html.FORM.tag
7698
 
web2py.gluon.html.H1.tag
7699
 
web2py.gluon.html.H2.tag
7700
 
web2py.gluon.html.H3.tag
7701
 
web2py.gluon.html.H4.tag
7702
 
web2py.gluon.html.H5.tag
7703
 
web2py.gluon.html.H6.tag
7704
 
web2py.gluon.html.HEAD.tag
7705
 
web2py.gluon.html.HR.tag
7706
 
web2py.gluon.html.HTML.tag
7707
 
web2py.gluon.html.I.tag
7708
 
web2py.gluon.html.IFRAME.tag
7709
 
web2py.gluon.html.IMG.tag
7710
 
web2py.gluon.html.INPUT.tag
7711
 
web2py.gluon.html.LABEL.tag
7712
 
web2py.gluon.html.LEGEND.tag
7713
 
web2py.gluon.html.LI.tag
7714
 
web2py.gluon.html.LINK.tag
7715
 
web2py.gluon.html.MENU.tag
7716
 
web2py.gluon.html.META.tag
7717
 
web2py.gluon.html.OBJECT.tag
7718
 
web2py.gluon.html.OL.tag
7719
 
web2py.gluon.html.OPTGROUP.tag
7720
 
web2py.gluon.html.OPTION.tag
7721
 
web2py.gluon.html.P.tag
7722
 
web2py.gluon.html.PRE.tag
7723
 
web2py.gluon.html.SCRIPT.tag
7724
 
web2py.gluon.html.SELECT.tag
7725
 
web2py.gluon.html.SPAN.tag
7726
 
web2py.gluon.html.STYLE.tag
7727
 
web2py.gluon.html.TABLE.tag
7728
 
web2py.gluon.html.TBODY.tag
7729
 
web2py.gluon.html.TD.tag
7730
 
web2py.gluon.html.TEXTAREA.tag
7731
 
web2py.gluon.html.TFOOT.tag
7732
 
web2py.gluon.html.TH.tag
7733
 
web2py.gluon.html.THEAD.tag
7734
 
web2py.gluon.html.TITLE.tag
7735
 
web2py.gluon.html.TR.tag
7736
 
web2py.gluon.html.TT.tag
7737
 
web2py.gluon.html.UL.tag
7738
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-526', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="web2py.gluon.html.A.tag
7739
 
web2py.gluon.html.B.tag
7740
 
web2py.gluon.html.BEAUTIFY.tag
7741
 
web2py.gluon.html.BODY.tag
7742
 
web2py.gluon.html.BR.tag
7743
 
web2py.gluon.html.BUTTON.tag
7744
 
web2py.gluon.html.CAT.tag
7745
 
web2py.gluon.html.CENTER.tag
7746
 
web2py.gluon.html.COL.tag
7747
 
web2py.gluon.html.COLGROUP.tag
7748
 
web2py.gluon.html.DIV.tag
7749
 
web2py.gluon.html.EM.tag
7750
 
web2py.gluon.html.EMBED.tag
7751
 
web2py.gluon.html.FIELDSET.tag
7752
 
web2py.gluon.html.FORM.tag
7753
 
web2py.gluon.html.H1.tag
7754
 
web2py.gluon.html.H2.tag
7755
 
web2py.gluon.html.H3.tag
7756
 
web2py.gluon.html.H4.tag
7757
 
web2py.gluon.html.H5.tag
7758
 
web2py.gluon.html.H6.tag
7759
 
web2py.gluon.html.HEAD.tag
7760
 
web2py.gluon.html.HR.tag
7761
 
web2py.gluon.html.HTML.tag
7762
 
web2py.gluon.html.I.tag
7763
 
web2py.gluon.html.IFRAME.tag
7764
 
web2py.gluon.html.IMG.tag
7765
 
web2py.gluon.html.INPUT.tag
7766
 
web2py.gluon.html.LABEL.tag
7767
 
web2py.gluon.html.LEGEND.tag
7768
 
web2py.gluon.html.LI.tag
7769
 
web2py.gluon.html.LINK.tag
7770
 
web2py.gluon.html.MENU.tag
7771
 
web2py.gluon.html.META.tag
7772
 
web2py.gluon.html.OBJECT.tag
7773
 
web2py.gluon.html.OL.tag
7774
 
web2py.gluon.html.OPTGROUP.tag
7775
 
web2py.gluon.html.OPTION.tag
7776
 
web2py.gluon.html.P.tag
7777
 
web2py.gluon.html.PRE.tag
7778
 
web2py.gluon.html.SCRIPT.tag
7779
 
web2py.gluon.html.SELECT.tag
7780
 
web2py.gluon.html.SPAN.tag
7781
 
web2py.gluon.html.STYLE.tag
7782
 
web2py.gluon.html.TABLE.tag
7783
 
web2py.gluon.html.TBODY.tag
7784
 
web2py.gluon.html.TD.tag
7785
 
web2py.gluon.html.TEXTAREA.tag
7786
 
web2py.gluon.html.TFOOT.tag
7787
 
web2py.gluon.html.TH.tag
7788
 
web2py.gluon.html.THEAD.tag
7789
 
web2py.gluon.html.TITLE.tag
7790
 
web2py.gluon.html.TR.tag
7791
 
web2py.gluon.html.TT.tag
7792
 
web2py.gluon.html.UL.tag
7793
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-527', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
7794
 
</div><a name="web2pyHTMLParser.handle_data"></a><div id="web2pyHTMLParser.handle_data-def"><a name="L2143"></a><tt class="py-lineno">2143</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_data-toggle" onclick="return toggle('web2pyHTMLParser.handle_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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>
7795
 
</div><div id="web2pyHTMLParser.handle_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_data-expanded"><a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
7796
 
<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-528" class="py-name"><a title="web2py.gluon.html.DIV.append
7797
 
web2py.gluon.template.BlockNode.append
7798
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-528', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-529', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt><tt class="py-string">'xmlcharref'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7799
 
<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
7800
 
<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-530" class="py-name"><a title="web2py.gluon.html.DIV.append
7801
 
web2py.gluon.template.BlockNode.append
7802
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-530', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name" targets="Method web2py.gluon.languages.lazyT.decode()=web2py.gluon.languages.lazyT-class.html#decode"><a title="web2py.gluon.languages.lazyT.decode" class="py-name" href="#" onclick="return doclink('link-531', 'decode', 'link-531');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'latin1'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-532', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt><tt class="py-string">'xmlcharref'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7803
 
</div><a name="web2pyHTMLParser.handle_charref"></a><div id="web2pyHTMLParser.handle_charref-def"><a name="L2148"></a><tt class="py-lineno">2148</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_charref-toggle" onclick="return toggle('web2pyHTMLParser.handle_charref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7804
 
</div><div id="web2pyHTMLParser.handle_charref-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_charref-expanded"><a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-533" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-533', 'name', 'link-74');">name</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="web2py.gluon.dal.Expression.lower" class="py-name" href="#" onclick="return doclink('link-534', 'lower', 'link-354');">lower</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt> </tt>
7805
 
<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-535" class="py-name"><a title="web2py.gluon.html.DIV.append
7806
 
web2py.gluon.template.BlockNode.append
7807
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-535', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-536" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-536', 'name', 'link-74');">name</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-537', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7808
 
<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
7809
 
<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="web2py.gluon.html.DIV.append
7810
 
web2py.gluon.template.BlockNode.append
7811
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-538', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-539" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-539', 'name', 'link-74');">name</a></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-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-540', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7812
 
</div><a name="web2pyHTMLParser.handle_entityref"></a><div id="web2pyHTMLParser.handle_entityref-def"><a name="L2153"></a><tt class="py-lineno">2153</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_entityref-toggle" onclick="return toggle('web2pyHTMLParser.handle_entityref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7813
 
</div><div id="web2pyHTMLParser.handle_entityref-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_entityref-expanded"><a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="web2py.gluon.html.DIV.append
7814
 
web2py.gluon.template.BlockNode.append
7815
 
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-541', 'append', 'link-30');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">name2codepoint</tt><tt class="py-op">[</tt><tt id="link-542" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-542', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-543', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
7816
 
</div><a name="web2pyHTMLParser.handle_endtag"></a><div id="web2pyHTMLParser.handle_endtag-def"><a name="L2155"></a><tt class="py-lineno">2155</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_endtag-toggle" onclick="return toggle('web2pyHTMLParser.handle_endtag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">tagname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7817
 
</div><div id="web2pyHTMLParser.handle_endtag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_endtag-expanded"><a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-comment"># this deals with unbalanced tags</tt> </tt>
7818
 
<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt><tt class="py-op">==</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-544', 'last', 'link-511');">last</a></tt><tt class="py-op">:</tt> </tt>
7819
 
<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
7820
 
<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
7821
 
<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
7822
 
<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">                <tt class="py-name">parent_tagname</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="web2py.gluon.html.A.tag
7823
 
web2py.gluon.html.B.tag
7824
 
web2py.gluon.html.BEAUTIFY.tag
7825
 
web2py.gluon.html.BODY.tag
7826
 
web2py.gluon.html.BR.tag
7827
 
web2py.gluon.html.BUTTON.tag
7828
 
web2py.gluon.html.CAT.tag
7829
 
web2py.gluon.html.CENTER.tag
7830
 
web2py.gluon.html.COL.tag
7831
 
web2py.gluon.html.COLGROUP.tag
7832
 
web2py.gluon.html.DIV.tag
7833
 
web2py.gluon.html.EM.tag
7834
 
web2py.gluon.html.EMBED.tag
7835
 
web2py.gluon.html.FIELDSET.tag
7836
 
web2py.gluon.html.FORM.tag
7837
 
web2py.gluon.html.H1.tag
7838
 
web2py.gluon.html.H2.tag
7839
 
web2py.gluon.html.H3.tag
7840
 
web2py.gluon.html.H4.tag
7841
 
web2py.gluon.html.H5.tag
7842
 
web2py.gluon.html.H6.tag
7843
 
web2py.gluon.html.HEAD.tag
7844
 
web2py.gluon.html.HR.tag
7845
 
web2py.gluon.html.HTML.tag
7846
 
web2py.gluon.html.I.tag
7847
 
web2py.gluon.html.IFRAME.tag
7848
 
web2py.gluon.html.IMG.tag
7849
 
web2py.gluon.html.INPUT.tag
7850
 
web2py.gluon.html.LABEL.tag
7851
 
web2py.gluon.html.LEGEND.tag
7852
 
web2py.gluon.html.LI.tag
7853
 
web2py.gluon.html.LINK.tag
7854
 
web2py.gluon.html.MENU.tag
7855
 
web2py.gluon.html.META.tag
7856
 
web2py.gluon.html.OBJECT.tag
7857
 
web2py.gluon.html.OL.tag
7858
 
web2py.gluon.html.OPTGROUP.tag
7859
 
web2py.gluon.html.OPTION.tag
7860
 
web2py.gluon.html.P.tag
7861
 
web2py.gluon.html.PRE.tag
7862
 
web2py.gluon.html.SCRIPT.tag
7863
 
web2py.gluon.html.SELECT.tag
7864
 
web2py.gluon.html.SPAN.tag
7865
 
web2py.gluon.html.STYLE.tag
7866
 
web2py.gluon.html.TABLE.tag
7867
 
web2py.gluon.html.TBODY.tag
7868
 
web2py.gluon.html.TD.tag
7869
 
web2py.gluon.html.TEXTAREA.tag
7870
 
web2py.gluon.html.TFOOT.tag
7871
 
web2py.gluon.html.TH.tag
7872
 
web2py.gluon.html.THEAD.tag
7873
 
web2py.gluon.html.TITLE.tag
7874
 
web2py.gluon.html.TR.tag
7875
 
web2py.gluon.html.TT.tag
7876
 
web2py.gluon.html.UL.tag
7877
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-545', 'tag', 'link-82');">tag</a></tt> </tt>
7878
 
<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
7879
 
<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
7880
 
<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">,</tt> <tt class="py-string">"unable to balance tag %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">tagname</tt> </tt>
7881
 
<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">parent_tagname</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-546" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-546', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">tagname</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">tagname</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
7882
 
</div></div><a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line"> </tt>
7883
 
<a name="markdown_serializer"></a><div id="markdown_serializer-def"><a name="L2167"></a><tt class="py-lineno">2167</tt> <a class="py-toggle" href="#" id="markdown_serializer-toggle" onclick="return toggle('markdown_serializer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#markdown_serializer">markdown_serializer</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">attr</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
7884
 
</div><div id="markdown_serializer-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="markdown_serializer-expanded"><a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-547" class="py-name"><a title="web2py.gluon.html.A.tag
7885
 
web2py.gluon.html.B.tag
7886
 
web2py.gluon.html.BEAUTIFY.tag
7887
 
web2py.gluon.html.BODY.tag
7888
 
web2py.gluon.html.BR.tag
7889
 
web2py.gluon.html.BUTTON.tag
7890
 
web2py.gluon.html.CAT.tag
7891
 
web2py.gluon.html.CENTER.tag
7892
 
web2py.gluon.html.COL.tag
7893
 
web2py.gluon.html.COLGROUP.tag
7894
 
web2py.gluon.html.DIV.tag
7895
 
web2py.gluon.html.EM.tag
7896
 
web2py.gluon.html.EMBED.tag
7897
 
web2py.gluon.html.FIELDSET.tag
7898
 
web2py.gluon.html.FORM.tag
7899
 
web2py.gluon.html.H1.tag
7900
 
web2py.gluon.html.H2.tag
7901
 
web2py.gluon.html.H3.tag
7902
 
web2py.gluon.html.H4.tag
7903
 
web2py.gluon.html.H5.tag
7904
 
web2py.gluon.html.H6.tag
7905
 
web2py.gluon.html.HEAD.tag
7906
 
web2py.gluon.html.HR.tag
7907
 
web2py.gluon.html.HTML.tag
7908
 
web2py.gluon.html.I.tag
7909
 
web2py.gluon.html.IFRAME.tag
7910
 
web2py.gluon.html.IMG.tag
7911
 
web2py.gluon.html.INPUT.tag
7912
 
web2py.gluon.html.LABEL.tag
7913
 
web2py.gluon.html.LEGEND.tag
7914
 
web2py.gluon.html.LI.tag
7915
 
web2py.gluon.html.LINK.tag
7916
 
web2py.gluon.html.MENU.tag
7917
 
web2py.gluon.html.META.tag
7918
 
web2py.gluon.html.OBJECT.tag
7919
 
web2py.gluon.html.OL.tag
7920
 
web2py.gluon.html.OPTGROUP.tag
7921
 
web2py.gluon.html.OPTION.tag
7922
 
web2py.gluon.html.P.tag
7923
 
web2py.gluon.html.PRE.tag
7924
 
web2py.gluon.html.SCRIPT.tag
7925
 
web2py.gluon.html.SELECT.tag
7926
 
web2py.gluon.html.SPAN.tag
7927
 
web2py.gluon.html.STYLE.tag
7928
 
web2py.gluon.html.TABLE.tag
7929
 
web2py.gluon.html.TBODY.tag
7930
 
web2py.gluon.html.TD.tag
7931
 
web2py.gluon.html.TEXTAREA.tag
7932
 
web2py.gluon.html.TFOOT.tag
7933
 
web2py.gluon.html.TH.tag
7934
 
web2py.gluon.html.THEAD.tag
7935
 
web2py.gluon.html.TITLE.tag
7936
 
web2py.gluon.html.TR.tag
7937
 
web2py.gluon.html.TT.tag
7938
 
web2py.gluon.html.UL.tag
7939
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-547', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">'\s+'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
7940
 
<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-548" class="py-name"><a title="web2py.gluon.html.A.tag
7941
 
web2py.gluon.html.B.tag
7942
 
web2py.gluon.html.BEAUTIFY.tag
7943
 
web2py.gluon.html.BODY.tag
7944
 
web2py.gluon.html.BR.tag
7945
 
web2py.gluon.html.BUTTON.tag
7946
 
web2py.gluon.html.CAT.tag
7947
 
web2py.gluon.html.CENTER.tag
7948
 
web2py.gluon.html.COL.tag
7949
 
web2py.gluon.html.COLGROUP.tag
7950
 
web2py.gluon.html.DIV.tag
7951
 
web2py.gluon.html.EM.tag
7952
 
web2py.gluon.html.EMBED.tag
7953
 
web2py.gluon.html.FIELDSET.tag
7954
 
web2py.gluon.html.FORM.tag
7955
 
web2py.gluon.html.H1.tag
7956
 
web2py.gluon.html.H2.tag
7957
 
web2py.gluon.html.H3.tag
7958
 
web2py.gluon.html.H4.tag
7959
 
web2py.gluon.html.H5.tag
7960
 
web2py.gluon.html.H6.tag
7961
 
web2py.gluon.html.HEAD.tag
7962
 
web2py.gluon.html.HR.tag
7963
 
web2py.gluon.html.HTML.tag
7964
 
web2py.gluon.html.I.tag
7965
 
web2py.gluon.html.IFRAME.tag
7966
 
web2py.gluon.html.IMG.tag
7967
 
web2py.gluon.html.INPUT.tag
7968
 
web2py.gluon.html.LABEL.tag
7969
 
web2py.gluon.html.LEGEND.tag
7970
 
web2py.gluon.html.LI.tag
7971
 
web2py.gluon.html.LINK.tag
7972
 
web2py.gluon.html.MENU.tag
7973
 
web2py.gluon.html.META.tag
7974
 
web2py.gluon.html.OBJECT.tag
7975
 
web2py.gluon.html.OL.tag
7976
 
web2py.gluon.html.OPTGROUP.tag
7977
 
web2py.gluon.html.OPTION.tag
7978
 
web2py.gluon.html.P.tag
7979
 
web2py.gluon.html.PRE.tag
7980
 
web2py.gluon.html.SCRIPT.tag
7981
 
web2py.gluon.html.SELECT.tag
7982
 
web2py.gluon.html.SPAN.tag
7983
 
web2py.gluon.html.STYLE.tag
7984
 
web2py.gluon.html.TABLE.tag
7985
 
web2py.gluon.html.TBODY.tag
7986
 
web2py.gluon.html.TD.tag
7987
 
web2py.gluon.html.TEXTAREA.tag
7988
 
web2py.gluon.html.TFOOT.tag
7989
 
web2py.gluon.html.TH.tag
7990
 
web2py.gluon.html.THEAD.tag
7991
 
web2py.gluon.html.TITLE.tag
7992
 
web2py.gluon.html.TR.tag
7993
 
web2py.gluon.html.TT.tag
7994
 
web2py.gluon.html.UL.tag
7995
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-548', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'br'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n\n'</tt> </tt>
7996
 
<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-549" class="py-name"><a title="web2py.gluon.html.A.tag
7997
 
web2py.gluon.html.B.tag
7998
 
web2py.gluon.html.BEAUTIFY.tag
7999
 
web2py.gluon.html.BODY.tag
8000
 
web2py.gluon.html.BR.tag
8001
 
web2py.gluon.html.BUTTON.tag
8002
 
web2py.gluon.html.CAT.tag
8003
 
web2py.gluon.html.CENTER.tag
8004
 
web2py.gluon.html.COL.tag
8005
 
web2py.gluon.html.COLGROUP.tag
8006
 
web2py.gluon.html.DIV.tag
8007
 
web2py.gluon.html.EM.tag
8008
 
web2py.gluon.html.EMBED.tag
8009
 
web2py.gluon.html.FIELDSET.tag
8010
 
web2py.gluon.html.FORM.tag
8011
 
web2py.gluon.html.H1.tag
8012
 
web2py.gluon.html.H2.tag
8013
 
web2py.gluon.html.H3.tag
8014
 
web2py.gluon.html.H4.tag
8015
 
web2py.gluon.html.H5.tag
8016
 
web2py.gluon.html.H6.tag
8017
 
web2py.gluon.html.HEAD.tag
8018
 
web2py.gluon.html.HR.tag
8019
 
web2py.gluon.html.HTML.tag
8020
 
web2py.gluon.html.I.tag
8021
 
web2py.gluon.html.IFRAME.tag
8022
 
web2py.gluon.html.IMG.tag
8023
 
web2py.gluon.html.INPUT.tag
8024
 
web2py.gluon.html.LABEL.tag
8025
 
web2py.gluon.html.LEGEND.tag
8026
 
web2py.gluon.html.LI.tag
8027
 
web2py.gluon.html.LINK.tag
8028
 
web2py.gluon.html.MENU.tag
8029
 
web2py.gluon.html.META.tag
8030
 
web2py.gluon.html.OBJECT.tag
8031
 
web2py.gluon.html.OL.tag
8032
 
web2py.gluon.html.OPTGROUP.tag
8033
 
web2py.gluon.html.OPTION.tag
8034
 
web2py.gluon.html.P.tag
8035
 
web2py.gluon.html.PRE.tag
8036
 
web2py.gluon.html.SCRIPT.tag
8037
 
web2py.gluon.html.SELECT.tag
8038
 
web2py.gluon.html.SPAN.tag
8039
 
web2py.gluon.html.STYLE.tag
8040
 
web2py.gluon.html.TABLE.tag
8041
 
web2py.gluon.html.TBODY.tag
8042
 
web2py.gluon.html.TD.tag
8043
 
web2py.gluon.html.TEXTAREA.tag
8044
 
web2py.gluon.html.TFOOT.tag
8045
 
web2py.gluon.html.TH.tag
8046
 
web2py.gluon.html.THEAD.tag
8047
 
web2py.gluon.html.TITLE.tag
8048
 
web2py.gluon.html.TR.tag
8049
 
web2py.gluon.html.TT.tag
8050
 
web2py.gluon.html.UL.tag
8051
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-549', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h1'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8052
 
<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-550" class="py-name"><a title="web2py.gluon.html.A.tag
8053
 
web2py.gluon.html.B.tag
8054
 
web2py.gluon.html.BEAUTIFY.tag
8055
 
web2py.gluon.html.BODY.tag
8056
 
web2py.gluon.html.BR.tag
8057
 
web2py.gluon.html.BUTTON.tag
8058
 
web2py.gluon.html.CAT.tag
8059
 
web2py.gluon.html.CENTER.tag
8060
 
web2py.gluon.html.COL.tag
8061
 
web2py.gluon.html.COLGROUP.tag
8062
 
web2py.gluon.html.DIV.tag
8063
 
web2py.gluon.html.EM.tag
8064
 
web2py.gluon.html.EMBED.tag
8065
 
web2py.gluon.html.FIELDSET.tag
8066
 
web2py.gluon.html.FORM.tag
8067
 
web2py.gluon.html.H1.tag
8068
 
web2py.gluon.html.H2.tag
8069
 
web2py.gluon.html.H3.tag
8070
 
web2py.gluon.html.H4.tag
8071
 
web2py.gluon.html.H5.tag
8072
 
web2py.gluon.html.H6.tag
8073
 
web2py.gluon.html.HEAD.tag
8074
 
web2py.gluon.html.HR.tag
8075
 
web2py.gluon.html.HTML.tag
8076
 
web2py.gluon.html.I.tag
8077
 
web2py.gluon.html.IFRAME.tag
8078
 
web2py.gluon.html.IMG.tag
8079
 
web2py.gluon.html.INPUT.tag
8080
 
web2py.gluon.html.LABEL.tag
8081
 
web2py.gluon.html.LEGEND.tag
8082
 
web2py.gluon.html.LI.tag
8083
 
web2py.gluon.html.LINK.tag
8084
 
web2py.gluon.html.MENU.tag
8085
 
web2py.gluon.html.META.tag
8086
 
web2py.gluon.html.OBJECT.tag
8087
 
web2py.gluon.html.OL.tag
8088
 
web2py.gluon.html.OPTGROUP.tag
8089
 
web2py.gluon.html.OPTION.tag
8090
 
web2py.gluon.html.P.tag
8091
 
web2py.gluon.html.PRE.tag
8092
 
web2py.gluon.html.SCRIPT.tag
8093
 
web2py.gluon.html.SELECT.tag
8094
 
web2py.gluon.html.SPAN.tag
8095
 
web2py.gluon.html.STYLE.tag
8096
 
web2py.gluon.html.TABLE.tag
8097
 
web2py.gluon.html.TBODY.tag
8098
 
web2py.gluon.html.TD.tag
8099
 
web2py.gluon.html.TEXTAREA.tag
8100
 
web2py.gluon.html.TFOOT.tag
8101
 
web2py.gluon.html.TH.tag
8102
 
web2py.gluon.html.THEAD.tag
8103
 
web2py.gluon.html.TITLE.tag
8104
 
web2py.gluon.html.TR.tag
8105
 
web2py.gluon.html.TT.tag
8106
 
web2py.gluon.html.UL.tag
8107
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-550', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h2'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">2</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8108
 
<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-551" class="py-name"><a title="web2py.gluon.html.A.tag
8109
 
web2py.gluon.html.B.tag
8110
 
web2py.gluon.html.BEAUTIFY.tag
8111
 
web2py.gluon.html.BODY.tag
8112
 
web2py.gluon.html.BR.tag
8113
 
web2py.gluon.html.BUTTON.tag
8114
 
web2py.gluon.html.CAT.tag
8115
 
web2py.gluon.html.CENTER.tag
8116
 
web2py.gluon.html.COL.tag
8117
 
web2py.gluon.html.COLGROUP.tag
8118
 
web2py.gluon.html.DIV.tag
8119
 
web2py.gluon.html.EM.tag
8120
 
web2py.gluon.html.EMBED.tag
8121
 
web2py.gluon.html.FIELDSET.tag
8122
 
web2py.gluon.html.FORM.tag
8123
 
web2py.gluon.html.H1.tag
8124
 
web2py.gluon.html.H2.tag
8125
 
web2py.gluon.html.H3.tag
8126
 
web2py.gluon.html.H4.tag
8127
 
web2py.gluon.html.H5.tag
8128
 
web2py.gluon.html.H6.tag
8129
 
web2py.gluon.html.HEAD.tag
8130
 
web2py.gluon.html.HR.tag
8131
 
web2py.gluon.html.HTML.tag
8132
 
web2py.gluon.html.I.tag
8133
 
web2py.gluon.html.IFRAME.tag
8134
 
web2py.gluon.html.IMG.tag
8135
 
web2py.gluon.html.INPUT.tag
8136
 
web2py.gluon.html.LABEL.tag
8137
 
web2py.gluon.html.LEGEND.tag
8138
 
web2py.gluon.html.LI.tag
8139
 
web2py.gluon.html.LINK.tag
8140
 
web2py.gluon.html.MENU.tag
8141
 
web2py.gluon.html.META.tag
8142
 
web2py.gluon.html.OBJECT.tag
8143
 
web2py.gluon.html.OL.tag
8144
 
web2py.gluon.html.OPTGROUP.tag
8145
 
web2py.gluon.html.OPTION.tag
8146
 
web2py.gluon.html.P.tag
8147
 
web2py.gluon.html.PRE.tag
8148
 
web2py.gluon.html.SCRIPT.tag
8149
 
web2py.gluon.html.SELECT.tag
8150
 
web2py.gluon.html.SPAN.tag
8151
 
web2py.gluon.html.STYLE.tag
8152
 
web2py.gluon.html.TABLE.tag
8153
 
web2py.gluon.html.TBODY.tag
8154
 
web2py.gluon.html.TD.tag
8155
 
web2py.gluon.html.TEXTAREA.tag
8156
 
web2py.gluon.html.TFOOT.tag
8157
 
web2py.gluon.html.TH.tag
8158
 
web2py.gluon.html.THEAD.tag
8159
 
web2py.gluon.html.TITLE.tag
8160
 
web2py.gluon.html.TR.tag
8161
 
web2py.gluon.html.TT.tag
8162
 
web2py.gluon.html.UL.tag
8163
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-551', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h3'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8164
 
<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-552" class="py-name"><a title="web2py.gluon.html.A.tag
8165
 
web2py.gluon.html.B.tag
8166
 
web2py.gluon.html.BEAUTIFY.tag
8167
 
web2py.gluon.html.BODY.tag
8168
 
web2py.gluon.html.BR.tag
8169
 
web2py.gluon.html.BUTTON.tag
8170
 
web2py.gluon.html.CAT.tag
8171
 
web2py.gluon.html.CENTER.tag
8172
 
web2py.gluon.html.COL.tag
8173
 
web2py.gluon.html.COLGROUP.tag
8174
 
web2py.gluon.html.DIV.tag
8175
 
web2py.gluon.html.EM.tag
8176
 
web2py.gluon.html.EMBED.tag
8177
 
web2py.gluon.html.FIELDSET.tag
8178
 
web2py.gluon.html.FORM.tag
8179
 
web2py.gluon.html.H1.tag
8180
 
web2py.gluon.html.H2.tag
8181
 
web2py.gluon.html.H3.tag
8182
 
web2py.gluon.html.H4.tag
8183
 
web2py.gluon.html.H5.tag
8184
 
web2py.gluon.html.H6.tag
8185
 
web2py.gluon.html.HEAD.tag
8186
 
web2py.gluon.html.HR.tag
8187
 
web2py.gluon.html.HTML.tag
8188
 
web2py.gluon.html.I.tag
8189
 
web2py.gluon.html.IFRAME.tag
8190
 
web2py.gluon.html.IMG.tag
8191
 
web2py.gluon.html.INPUT.tag
8192
 
web2py.gluon.html.LABEL.tag
8193
 
web2py.gluon.html.LEGEND.tag
8194
 
web2py.gluon.html.LI.tag
8195
 
web2py.gluon.html.LINK.tag
8196
 
web2py.gluon.html.MENU.tag
8197
 
web2py.gluon.html.META.tag
8198
 
web2py.gluon.html.OBJECT.tag
8199
 
web2py.gluon.html.OL.tag
8200
 
web2py.gluon.html.OPTGROUP.tag
8201
 
web2py.gluon.html.OPTION.tag
8202
 
web2py.gluon.html.P.tag
8203
 
web2py.gluon.html.PRE.tag
8204
 
web2py.gluon.html.SCRIPT.tag
8205
 
web2py.gluon.html.SELECT.tag
8206
 
web2py.gluon.html.SPAN.tag
8207
 
web2py.gluon.html.STYLE.tag
8208
 
web2py.gluon.html.TABLE.tag
8209
 
web2py.gluon.html.TBODY.tag
8210
 
web2py.gluon.html.TD.tag
8211
 
web2py.gluon.html.TEXTAREA.tag
8212
 
web2py.gluon.html.TFOOT.tag
8213
 
web2py.gluon.html.TH.tag
8214
 
web2py.gluon.html.THEAD.tag
8215
 
web2py.gluon.html.TITLE.tag
8216
 
web2py.gluon.html.TR.tag
8217
 
web2py.gluon.html.TT.tag
8218
 
web2py.gluon.html.UL.tag
8219
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-552', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h4'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">4</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8220
 
<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-553" class="py-name"><a title="web2py.gluon.html.A.tag
8221
 
web2py.gluon.html.B.tag
8222
 
web2py.gluon.html.BEAUTIFY.tag
8223
 
web2py.gluon.html.BODY.tag
8224
 
web2py.gluon.html.BR.tag
8225
 
web2py.gluon.html.BUTTON.tag
8226
 
web2py.gluon.html.CAT.tag
8227
 
web2py.gluon.html.CENTER.tag
8228
 
web2py.gluon.html.COL.tag
8229
 
web2py.gluon.html.COLGROUP.tag
8230
 
web2py.gluon.html.DIV.tag
8231
 
web2py.gluon.html.EM.tag
8232
 
web2py.gluon.html.EMBED.tag
8233
 
web2py.gluon.html.FIELDSET.tag
8234
 
web2py.gluon.html.FORM.tag
8235
 
web2py.gluon.html.H1.tag
8236
 
web2py.gluon.html.H2.tag
8237
 
web2py.gluon.html.H3.tag
8238
 
web2py.gluon.html.H4.tag
8239
 
web2py.gluon.html.H5.tag
8240
 
web2py.gluon.html.H6.tag
8241
 
web2py.gluon.html.HEAD.tag
8242
 
web2py.gluon.html.HR.tag
8243
 
web2py.gluon.html.HTML.tag
8244
 
web2py.gluon.html.I.tag
8245
 
web2py.gluon.html.IFRAME.tag
8246
 
web2py.gluon.html.IMG.tag
8247
 
web2py.gluon.html.INPUT.tag
8248
 
web2py.gluon.html.LABEL.tag
8249
 
web2py.gluon.html.LEGEND.tag
8250
 
web2py.gluon.html.LI.tag
8251
 
web2py.gluon.html.LINK.tag
8252
 
web2py.gluon.html.MENU.tag
8253
 
web2py.gluon.html.META.tag
8254
 
web2py.gluon.html.OBJECT.tag
8255
 
web2py.gluon.html.OL.tag
8256
 
web2py.gluon.html.OPTGROUP.tag
8257
 
web2py.gluon.html.OPTION.tag
8258
 
web2py.gluon.html.P.tag
8259
 
web2py.gluon.html.PRE.tag
8260
 
web2py.gluon.html.SCRIPT.tag
8261
 
web2py.gluon.html.SELECT.tag
8262
 
web2py.gluon.html.SPAN.tag
8263
 
web2py.gluon.html.STYLE.tag
8264
 
web2py.gluon.html.TABLE.tag
8265
 
web2py.gluon.html.TBODY.tag
8266
 
web2py.gluon.html.TD.tag
8267
 
web2py.gluon.html.TEXTAREA.tag
8268
 
web2py.gluon.html.TFOOT.tag
8269
 
web2py.gluon.html.TH.tag
8270
 
web2py.gluon.html.THEAD.tag
8271
 
web2py.gluon.html.TITLE.tag
8272
 
web2py.gluon.html.TR.tag
8273
 
web2py.gluon.html.TT.tag
8274
 
web2py.gluon.html.UL.tag
8275
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-553', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8276
 
<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-554" class="py-name"><a title="web2py.gluon.html.A.tag
8277
 
web2py.gluon.html.B.tag
8278
 
web2py.gluon.html.BEAUTIFY.tag
8279
 
web2py.gluon.html.BODY.tag
8280
 
web2py.gluon.html.BR.tag
8281
 
web2py.gluon.html.BUTTON.tag
8282
 
web2py.gluon.html.CAT.tag
8283
 
web2py.gluon.html.CENTER.tag
8284
 
web2py.gluon.html.COL.tag
8285
 
web2py.gluon.html.COLGROUP.tag
8286
 
web2py.gluon.html.DIV.tag
8287
 
web2py.gluon.html.EM.tag
8288
 
web2py.gluon.html.EMBED.tag
8289
 
web2py.gluon.html.FIELDSET.tag
8290
 
web2py.gluon.html.FORM.tag
8291
 
web2py.gluon.html.H1.tag
8292
 
web2py.gluon.html.H2.tag
8293
 
web2py.gluon.html.H3.tag
8294
 
web2py.gluon.html.H4.tag
8295
 
web2py.gluon.html.H5.tag
8296
 
web2py.gluon.html.H6.tag
8297
 
web2py.gluon.html.HEAD.tag
8298
 
web2py.gluon.html.HR.tag
8299
 
web2py.gluon.html.HTML.tag
8300
 
web2py.gluon.html.I.tag
8301
 
web2py.gluon.html.IFRAME.tag
8302
 
web2py.gluon.html.IMG.tag
8303
 
web2py.gluon.html.INPUT.tag
8304
 
web2py.gluon.html.LABEL.tag
8305
 
web2py.gluon.html.LEGEND.tag
8306
 
web2py.gluon.html.LI.tag
8307
 
web2py.gluon.html.LINK.tag
8308
 
web2py.gluon.html.MENU.tag
8309
 
web2py.gluon.html.META.tag
8310
 
web2py.gluon.html.OBJECT.tag
8311
 
web2py.gluon.html.OL.tag
8312
 
web2py.gluon.html.OPTGROUP.tag
8313
 
web2py.gluon.html.OPTION.tag
8314
 
web2py.gluon.html.P.tag
8315
 
web2py.gluon.html.PRE.tag
8316
 
web2py.gluon.html.SCRIPT.tag
8317
 
web2py.gluon.html.SELECT.tag
8318
 
web2py.gluon.html.SPAN.tag
8319
 
web2py.gluon.html.STYLE.tag
8320
 
web2py.gluon.html.TABLE.tag
8321
 
web2py.gluon.html.TBODY.tag
8322
 
web2py.gluon.html.TD.tag
8323
 
web2py.gluon.html.TEXTAREA.tag
8324
 
web2py.gluon.html.TFOOT.tag
8325
 
web2py.gluon.html.TH.tag
8326
 
web2py.gluon.html.THEAD.tag
8327
 
web2py.gluon.html.TITLE.tag
8328
 
web2py.gluon.html.TR.tag
8329
 
web2py.gluon.html.TT.tag
8330
 
web2py.gluon.html.UL.tag
8331
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-554', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'b'</tt> <tt class="py-keyword">or</tt> <tt id="link-555" class="py-name"><a title="web2py.gluon.html.A.tag
8332
 
web2py.gluon.html.B.tag
8333
 
web2py.gluon.html.BEAUTIFY.tag
8334
 
web2py.gluon.html.BODY.tag
8335
 
web2py.gluon.html.BR.tag
8336
 
web2py.gluon.html.BUTTON.tag
8337
 
web2py.gluon.html.CAT.tag
8338
 
web2py.gluon.html.CENTER.tag
8339
 
web2py.gluon.html.COL.tag
8340
 
web2py.gluon.html.COLGROUP.tag
8341
 
web2py.gluon.html.DIV.tag
8342
 
web2py.gluon.html.EM.tag
8343
 
web2py.gluon.html.EMBED.tag
8344
 
web2py.gluon.html.FIELDSET.tag
8345
 
web2py.gluon.html.FORM.tag
8346
 
web2py.gluon.html.H1.tag
8347
 
web2py.gluon.html.H2.tag
8348
 
web2py.gluon.html.H3.tag
8349
 
web2py.gluon.html.H4.tag
8350
 
web2py.gluon.html.H5.tag
8351
 
web2py.gluon.html.H6.tag
8352
 
web2py.gluon.html.HEAD.tag
8353
 
web2py.gluon.html.HR.tag
8354
 
web2py.gluon.html.HTML.tag
8355
 
web2py.gluon.html.I.tag
8356
 
web2py.gluon.html.IFRAME.tag
8357
 
web2py.gluon.html.IMG.tag
8358
 
web2py.gluon.html.INPUT.tag
8359
 
web2py.gluon.html.LABEL.tag
8360
 
web2py.gluon.html.LEGEND.tag
8361
 
web2py.gluon.html.LI.tag
8362
 
web2py.gluon.html.LINK.tag
8363
 
web2py.gluon.html.MENU.tag
8364
 
web2py.gluon.html.META.tag
8365
 
web2py.gluon.html.OBJECT.tag
8366
 
web2py.gluon.html.OL.tag
8367
 
web2py.gluon.html.OPTGROUP.tag
8368
 
web2py.gluon.html.OPTION.tag
8369
 
web2py.gluon.html.P.tag
8370
 
web2py.gluon.html.PRE.tag
8371
 
web2py.gluon.html.SCRIPT.tag
8372
 
web2py.gluon.html.SELECT.tag
8373
 
web2py.gluon.html.SPAN.tag
8374
 
web2py.gluon.html.STYLE.tag
8375
 
web2py.gluon.html.TABLE.tag
8376
 
web2py.gluon.html.TBODY.tag
8377
 
web2py.gluon.html.TD.tag
8378
 
web2py.gluon.html.TEXTAREA.tag
8379
 
web2py.gluon.html.TFOOT.tag
8380
 
web2py.gluon.html.TH.tag
8381
 
web2py.gluon.html.THEAD.tag
8382
 
web2py.gluon.html.TITLE.tag
8383
 
web2py.gluon.html.TR.tag
8384
 
web2py.gluon.html.TT.tag
8385
 
web2py.gluon.html.UL.tag
8386
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-555', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'strong'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'**%s**'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
8387
 
<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-556" class="py-name"><a title="web2py.gluon.html.A.tag
8388
 
web2py.gluon.html.B.tag
8389
 
web2py.gluon.html.BEAUTIFY.tag
8390
 
web2py.gluon.html.BODY.tag
8391
 
web2py.gluon.html.BR.tag
8392
 
web2py.gluon.html.BUTTON.tag
8393
 
web2py.gluon.html.CAT.tag
8394
 
web2py.gluon.html.CENTER.tag
8395
 
web2py.gluon.html.COL.tag
8396
 
web2py.gluon.html.COLGROUP.tag
8397
 
web2py.gluon.html.DIV.tag
8398
 
web2py.gluon.html.EM.tag
8399
 
web2py.gluon.html.EMBED.tag
8400
 
web2py.gluon.html.FIELDSET.tag
8401
 
web2py.gluon.html.FORM.tag
8402
 
web2py.gluon.html.H1.tag
8403
 
web2py.gluon.html.H2.tag
8404
 
web2py.gluon.html.H3.tag
8405
 
web2py.gluon.html.H4.tag
8406
 
web2py.gluon.html.H5.tag
8407
 
web2py.gluon.html.H6.tag
8408
 
web2py.gluon.html.HEAD.tag
8409
 
web2py.gluon.html.HR.tag
8410
 
web2py.gluon.html.HTML.tag
8411
 
web2py.gluon.html.I.tag
8412
 
web2py.gluon.html.IFRAME.tag
8413
 
web2py.gluon.html.IMG.tag
8414
 
web2py.gluon.html.INPUT.tag
8415
 
web2py.gluon.html.LABEL.tag
8416
 
web2py.gluon.html.LEGEND.tag
8417
 
web2py.gluon.html.LI.tag
8418
 
web2py.gluon.html.LINK.tag
8419
 
web2py.gluon.html.MENU.tag
8420
 
web2py.gluon.html.META.tag
8421
 
web2py.gluon.html.OBJECT.tag
8422
 
web2py.gluon.html.OL.tag
8423
 
web2py.gluon.html.OPTGROUP.tag
8424
 
web2py.gluon.html.OPTION.tag
8425
 
web2py.gluon.html.P.tag
8426
 
web2py.gluon.html.PRE.tag
8427
 
web2py.gluon.html.SCRIPT.tag
8428
 
web2py.gluon.html.SELECT.tag
8429
 
web2py.gluon.html.SPAN.tag
8430
 
web2py.gluon.html.STYLE.tag
8431
 
web2py.gluon.html.TABLE.tag
8432
 
web2py.gluon.html.TBODY.tag
8433
 
web2py.gluon.html.TD.tag
8434
 
web2py.gluon.html.TEXTAREA.tag
8435
 
web2py.gluon.html.TFOOT.tag
8436
 
web2py.gluon.html.TH.tag
8437
 
web2py.gluon.html.THEAD.tag
8438
 
web2py.gluon.html.TITLE.tag
8439
 
web2py.gluon.html.TR.tag
8440
 
web2py.gluon.html.TT.tag
8441
 
web2py.gluon.html.UL.tag
8442
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-556', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'em'</tt> <tt class="py-keyword">or</tt> <tt id="link-557" class="py-name"><a title="web2py.gluon.html.A.tag
8443
 
web2py.gluon.html.B.tag
8444
 
web2py.gluon.html.BEAUTIFY.tag
8445
 
web2py.gluon.html.BODY.tag
8446
 
web2py.gluon.html.BR.tag
8447
 
web2py.gluon.html.BUTTON.tag
8448
 
web2py.gluon.html.CAT.tag
8449
 
web2py.gluon.html.CENTER.tag
8450
 
web2py.gluon.html.COL.tag
8451
 
web2py.gluon.html.COLGROUP.tag
8452
 
web2py.gluon.html.DIV.tag
8453
 
web2py.gluon.html.EM.tag
8454
 
web2py.gluon.html.EMBED.tag
8455
 
web2py.gluon.html.FIELDSET.tag
8456
 
web2py.gluon.html.FORM.tag
8457
 
web2py.gluon.html.H1.tag
8458
 
web2py.gluon.html.H2.tag
8459
 
web2py.gluon.html.H3.tag
8460
 
web2py.gluon.html.H4.tag
8461
 
web2py.gluon.html.H5.tag
8462
 
web2py.gluon.html.H6.tag
8463
 
web2py.gluon.html.HEAD.tag
8464
 
web2py.gluon.html.HR.tag
8465
 
web2py.gluon.html.HTML.tag
8466
 
web2py.gluon.html.I.tag
8467
 
web2py.gluon.html.IFRAME.tag
8468
 
web2py.gluon.html.IMG.tag
8469
 
web2py.gluon.html.INPUT.tag
8470
 
web2py.gluon.html.LABEL.tag
8471
 
web2py.gluon.html.LEGEND.tag
8472
 
web2py.gluon.html.LI.tag
8473
 
web2py.gluon.html.LINK.tag
8474
 
web2py.gluon.html.MENU.tag
8475
 
web2py.gluon.html.META.tag
8476
 
web2py.gluon.html.OBJECT.tag
8477
 
web2py.gluon.html.OL.tag
8478
 
web2py.gluon.html.OPTGROUP.tag
8479
 
web2py.gluon.html.OPTION.tag
8480
 
web2py.gluon.html.P.tag
8481
 
web2py.gluon.html.PRE.tag
8482
 
web2py.gluon.html.SCRIPT.tag
8483
 
web2py.gluon.html.SELECT.tag
8484
 
web2py.gluon.html.SPAN.tag
8485
 
web2py.gluon.html.STYLE.tag
8486
 
web2py.gluon.html.TABLE.tag
8487
 
web2py.gluon.html.TBODY.tag
8488
 
web2py.gluon.html.TD.tag
8489
 
web2py.gluon.html.TEXTAREA.tag
8490
 
web2py.gluon.html.TFOOT.tag
8491
 
web2py.gluon.html.TH.tag
8492
 
web2py.gluon.html.THEAD.tag
8493
 
web2py.gluon.html.TITLE.tag
8494
 
web2py.gluon.html.TR.tag
8495
 
web2py.gluon.html.TT.tag
8496
 
web2py.gluon.html.UL.tag
8497
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-557', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'i'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'*%s*'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
8498
 
<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-558" class="py-name"><a title="web2py.gluon.html.A.tag
8499
 
web2py.gluon.html.B.tag
8500
 
web2py.gluon.html.BEAUTIFY.tag
8501
 
web2py.gluon.html.BODY.tag
8502
 
web2py.gluon.html.BR.tag
8503
 
web2py.gluon.html.BUTTON.tag
8504
 
web2py.gluon.html.CAT.tag
8505
 
web2py.gluon.html.CENTER.tag
8506
 
web2py.gluon.html.COL.tag
8507
 
web2py.gluon.html.COLGROUP.tag
8508
 
web2py.gluon.html.DIV.tag
8509
 
web2py.gluon.html.EM.tag
8510
 
web2py.gluon.html.EMBED.tag
8511
 
web2py.gluon.html.FIELDSET.tag
8512
 
web2py.gluon.html.FORM.tag
8513
 
web2py.gluon.html.H1.tag
8514
 
web2py.gluon.html.H2.tag
8515
 
web2py.gluon.html.H3.tag
8516
 
web2py.gluon.html.H4.tag
8517
 
web2py.gluon.html.H5.tag
8518
 
web2py.gluon.html.H6.tag
8519
 
web2py.gluon.html.HEAD.tag
8520
 
web2py.gluon.html.HR.tag
8521
 
web2py.gluon.html.HTML.tag
8522
 
web2py.gluon.html.I.tag
8523
 
web2py.gluon.html.IFRAME.tag
8524
 
web2py.gluon.html.IMG.tag
8525
 
web2py.gluon.html.INPUT.tag
8526
 
web2py.gluon.html.LABEL.tag
8527
 
web2py.gluon.html.LEGEND.tag
8528
 
web2py.gluon.html.LI.tag
8529
 
web2py.gluon.html.LINK.tag
8530
 
web2py.gluon.html.MENU.tag
8531
 
web2py.gluon.html.META.tag
8532
 
web2py.gluon.html.OBJECT.tag
8533
 
web2py.gluon.html.OL.tag
8534
 
web2py.gluon.html.OPTGROUP.tag
8535
 
web2py.gluon.html.OPTION.tag
8536
 
web2py.gluon.html.P.tag
8537
 
web2py.gluon.html.PRE.tag
8538
 
web2py.gluon.html.SCRIPT.tag
8539
 
web2py.gluon.html.SELECT.tag
8540
 
web2py.gluon.html.SPAN.tag
8541
 
web2py.gluon.html.STYLE.tag
8542
 
web2py.gluon.html.TABLE.tag
8543
 
web2py.gluon.html.TBODY.tag
8544
 
web2py.gluon.html.TD.tag
8545
 
web2py.gluon.html.TEXTAREA.tag
8546
 
web2py.gluon.html.TFOOT.tag
8547
 
web2py.gluon.html.TH.tag
8548
 
web2py.gluon.html.THEAD.tag
8549
 
web2py.gluon.html.TITLE.tag
8550
 
web2py.gluon.html.TR.tag
8551
 
web2py.gluon.html.TT.tag
8552
 
web2py.gluon.html.UL.tag
8553
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-558', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'tt'</tt> <tt class="py-keyword">or</tt> <tt id="link-559" class="py-name"><a title="web2py.gluon.html.A.tag
8554
 
web2py.gluon.html.B.tag
8555
 
web2py.gluon.html.BEAUTIFY.tag
8556
 
web2py.gluon.html.BODY.tag
8557
 
web2py.gluon.html.BR.tag
8558
 
web2py.gluon.html.BUTTON.tag
8559
 
web2py.gluon.html.CAT.tag
8560
 
web2py.gluon.html.CENTER.tag
8561
 
web2py.gluon.html.COL.tag
8562
 
web2py.gluon.html.COLGROUP.tag
8563
 
web2py.gluon.html.DIV.tag
8564
 
web2py.gluon.html.EM.tag
8565
 
web2py.gluon.html.EMBED.tag
8566
 
web2py.gluon.html.FIELDSET.tag
8567
 
web2py.gluon.html.FORM.tag
8568
 
web2py.gluon.html.H1.tag
8569
 
web2py.gluon.html.H2.tag
8570
 
web2py.gluon.html.H3.tag
8571
 
web2py.gluon.html.H4.tag
8572
 
web2py.gluon.html.H5.tag
8573
 
web2py.gluon.html.H6.tag
8574
 
web2py.gluon.html.HEAD.tag
8575
 
web2py.gluon.html.HR.tag
8576
 
web2py.gluon.html.HTML.tag
8577
 
web2py.gluon.html.I.tag
8578
 
web2py.gluon.html.IFRAME.tag
8579
 
web2py.gluon.html.IMG.tag
8580
 
web2py.gluon.html.INPUT.tag
8581
 
web2py.gluon.html.LABEL.tag
8582
 
web2py.gluon.html.LEGEND.tag
8583
 
web2py.gluon.html.LI.tag
8584
 
web2py.gluon.html.LINK.tag
8585
 
web2py.gluon.html.MENU.tag
8586
 
web2py.gluon.html.META.tag
8587
 
web2py.gluon.html.OBJECT.tag
8588
 
web2py.gluon.html.OL.tag
8589
 
web2py.gluon.html.OPTGROUP.tag
8590
 
web2py.gluon.html.OPTION.tag
8591
 
web2py.gluon.html.P.tag
8592
 
web2py.gluon.html.PRE.tag
8593
 
web2py.gluon.html.SCRIPT.tag
8594
 
web2py.gluon.html.SELECT.tag
8595
 
web2py.gluon.html.SPAN.tag
8596
 
web2py.gluon.html.STYLE.tag
8597
 
web2py.gluon.html.TABLE.tag
8598
 
web2py.gluon.html.TBODY.tag
8599
 
web2py.gluon.html.TD.tag
8600
 
web2py.gluon.html.TEXTAREA.tag
8601
 
web2py.gluon.html.TFOOT.tag
8602
 
web2py.gluon.html.TH.tag
8603
 
web2py.gluon.html.THEAD.tag
8604
 
web2py.gluon.html.TITLE.tag
8605
 
web2py.gluon.html.TR.tag
8606
 
web2py.gluon.html.TT.tag
8607
 
web2py.gluon.html.UL.tag
8608
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-559', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'`%s`'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
8609
 
<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-560" class="py-name"><a title="web2py.gluon.html.A.tag
8610
 
web2py.gluon.html.B.tag
8611
 
web2py.gluon.html.BEAUTIFY.tag
8612
 
web2py.gluon.html.BODY.tag
8613
 
web2py.gluon.html.BR.tag
8614
 
web2py.gluon.html.BUTTON.tag
8615
 
web2py.gluon.html.CAT.tag
8616
 
web2py.gluon.html.CENTER.tag
8617
 
web2py.gluon.html.COL.tag
8618
 
web2py.gluon.html.COLGROUP.tag
8619
 
web2py.gluon.html.DIV.tag
8620
 
web2py.gluon.html.EM.tag
8621
 
web2py.gluon.html.EMBED.tag
8622
 
web2py.gluon.html.FIELDSET.tag
8623
 
web2py.gluon.html.FORM.tag
8624
 
web2py.gluon.html.H1.tag
8625
 
web2py.gluon.html.H2.tag
8626
 
web2py.gluon.html.H3.tag
8627
 
web2py.gluon.html.H4.tag
8628
 
web2py.gluon.html.H5.tag
8629
 
web2py.gluon.html.H6.tag
8630
 
web2py.gluon.html.HEAD.tag
8631
 
web2py.gluon.html.HR.tag
8632
 
web2py.gluon.html.HTML.tag
8633
 
web2py.gluon.html.I.tag
8634
 
web2py.gluon.html.IFRAME.tag
8635
 
web2py.gluon.html.IMG.tag
8636
 
web2py.gluon.html.INPUT.tag
8637
 
web2py.gluon.html.LABEL.tag
8638
 
web2py.gluon.html.LEGEND.tag
8639
 
web2py.gluon.html.LI.tag
8640
 
web2py.gluon.html.LINK.tag
8641
 
web2py.gluon.html.MENU.tag
8642
 
web2py.gluon.html.META.tag
8643
 
web2py.gluon.html.OBJECT.tag
8644
 
web2py.gluon.html.OL.tag
8645
 
web2py.gluon.html.OPTGROUP.tag
8646
 
web2py.gluon.html.OPTION.tag
8647
 
web2py.gluon.html.P.tag
8648
 
web2py.gluon.html.PRE.tag
8649
 
web2py.gluon.html.SCRIPT.tag
8650
 
web2py.gluon.html.SELECT.tag
8651
 
web2py.gluon.html.SPAN.tag
8652
 
web2py.gluon.html.STYLE.tag
8653
 
web2py.gluon.html.TABLE.tag
8654
 
web2py.gluon.html.TBODY.tag
8655
 
web2py.gluon.html.TD.tag
8656
 
web2py.gluon.html.TEXTAREA.tag
8657
 
web2py.gluon.html.TFOOT.tag
8658
 
web2py.gluon.html.TH.tag
8659
 
web2py.gluon.html.THEAD.tag
8660
 
web2py.gluon.html.TITLE.tag
8661
 
web2py.gluon.html.TR.tag
8662
 
web2py.gluon.html.TT.tag
8663
 
web2py.gluon.html.UL.tag
8664
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-560', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[%s](%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-561', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_href'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
8665
 
<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-562" class="py-name"><a title="web2py.gluon.html.A.tag
8666
 
web2py.gluon.html.B.tag
8667
 
web2py.gluon.html.BEAUTIFY.tag
8668
 
web2py.gluon.html.BODY.tag
8669
 
web2py.gluon.html.BR.tag
8670
 
web2py.gluon.html.BUTTON.tag
8671
 
web2py.gluon.html.CAT.tag
8672
 
web2py.gluon.html.CENTER.tag
8673
 
web2py.gluon.html.COL.tag
8674
 
web2py.gluon.html.COLGROUP.tag
8675
 
web2py.gluon.html.DIV.tag
8676
 
web2py.gluon.html.EM.tag
8677
 
web2py.gluon.html.EMBED.tag
8678
 
web2py.gluon.html.FIELDSET.tag
8679
 
web2py.gluon.html.FORM.tag
8680
 
web2py.gluon.html.H1.tag
8681
 
web2py.gluon.html.H2.tag
8682
 
web2py.gluon.html.H3.tag
8683
 
web2py.gluon.html.H4.tag
8684
 
web2py.gluon.html.H5.tag
8685
 
web2py.gluon.html.H6.tag
8686
 
web2py.gluon.html.HEAD.tag
8687
 
web2py.gluon.html.HR.tag
8688
 
web2py.gluon.html.HTML.tag
8689
 
web2py.gluon.html.I.tag
8690
 
web2py.gluon.html.IFRAME.tag
8691
 
web2py.gluon.html.IMG.tag
8692
 
web2py.gluon.html.INPUT.tag
8693
 
web2py.gluon.html.LABEL.tag
8694
 
web2py.gluon.html.LEGEND.tag
8695
 
web2py.gluon.html.LI.tag
8696
 
web2py.gluon.html.LINK.tag
8697
 
web2py.gluon.html.MENU.tag
8698
 
web2py.gluon.html.META.tag
8699
 
web2py.gluon.html.OBJECT.tag
8700
 
web2py.gluon.html.OL.tag
8701
 
web2py.gluon.html.OPTGROUP.tag
8702
 
web2py.gluon.html.OPTION.tag
8703
 
web2py.gluon.html.P.tag
8704
 
web2py.gluon.html.PRE.tag
8705
 
web2py.gluon.html.SCRIPT.tag
8706
 
web2py.gluon.html.SELECT.tag
8707
 
web2py.gluon.html.SPAN.tag
8708
 
web2py.gluon.html.STYLE.tag
8709
 
web2py.gluon.html.TABLE.tag
8710
 
web2py.gluon.html.TBODY.tag
8711
 
web2py.gluon.html.TD.tag
8712
 
web2py.gluon.html.TEXTAREA.tag
8713
 
web2py.gluon.html.TFOOT.tag
8714
 
web2py.gluon.html.TH.tag
8715
 
web2py.gluon.html.THEAD.tag
8716
 
web2py.gluon.html.TITLE.tag
8717
 
web2py.gluon.html.TR.tag
8718
 
web2py.gluon.html.TT.tag
8719
 
web2py.gluon.html.UL.tag
8720
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-562', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'![%s](%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-563" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-563', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_alt'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-564', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_src'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
8721
 
<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
8722
 
</div><a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line"> </tt>
8723
 
<a name="markmin_serializer"></a><div id="markmin_serializer-def"><a name="L2182"></a><tt class="py-lineno">2182</tt> <a class="py-toggle" href="#" id="markmin_serializer-toggle" onclick="return toggle('markmin_serializer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#markmin_serializer">markmin_serializer</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">attr</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
8724
 
</div><div id="markmin_serializer-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="markmin_serializer-expanded"><a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">    <tt class="py-comment"># if tag is None: return re.sub('\s+',' ',text)</tt> </tt>
8725
 
<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt id="link-565" class="py-name"><a title="web2py.gluon.html.A.tag
8726
 
web2py.gluon.html.B.tag
8727
 
web2py.gluon.html.BEAUTIFY.tag
8728
 
web2py.gluon.html.BODY.tag
8729
 
web2py.gluon.html.BR.tag
8730
 
web2py.gluon.html.BUTTON.tag
8731
 
web2py.gluon.html.CAT.tag
8732
 
web2py.gluon.html.CENTER.tag
8733
 
web2py.gluon.html.COL.tag
8734
 
web2py.gluon.html.COLGROUP.tag
8735
 
web2py.gluon.html.DIV.tag
8736
 
web2py.gluon.html.EM.tag
8737
 
web2py.gluon.html.EMBED.tag
8738
 
web2py.gluon.html.FIELDSET.tag
8739
 
web2py.gluon.html.FORM.tag
8740
 
web2py.gluon.html.H1.tag
8741
 
web2py.gluon.html.H2.tag
8742
 
web2py.gluon.html.H3.tag
8743
 
web2py.gluon.html.H4.tag
8744
 
web2py.gluon.html.H5.tag
8745
 
web2py.gluon.html.H6.tag
8746
 
web2py.gluon.html.HEAD.tag
8747
 
web2py.gluon.html.HR.tag
8748
 
web2py.gluon.html.HTML.tag
8749
 
web2py.gluon.html.I.tag
8750
 
web2py.gluon.html.IFRAME.tag
8751
 
web2py.gluon.html.IMG.tag
8752
 
web2py.gluon.html.INPUT.tag
8753
 
web2py.gluon.html.LABEL.tag
8754
 
web2py.gluon.html.LEGEND.tag
8755
 
web2py.gluon.html.LI.tag
8756
 
web2py.gluon.html.LINK.tag
8757
 
web2py.gluon.html.MENU.tag
8758
 
web2py.gluon.html.META.tag
8759
 
web2py.gluon.html.OBJECT.tag
8760
 
web2py.gluon.html.OL.tag
8761
 
web2py.gluon.html.OPTGROUP.tag
8762
 
web2py.gluon.html.OPTION.tag
8763
 
web2py.gluon.html.P.tag
8764
 
web2py.gluon.html.PRE.tag
8765
 
web2py.gluon.html.SCRIPT.tag
8766
 
web2py.gluon.html.SELECT.tag
8767
 
web2py.gluon.html.SPAN.tag
8768
 
web2py.gluon.html.STYLE.tag
8769
 
web2py.gluon.html.TABLE.tag
8770
 
web2py.gluon.html.TBODY.tag
8771
 
web2py.gluon.html.TD.tag
8772
 
web2py.gluon.html.TEXTAREA.tag
8773
 
web2py.gluon.html.TFOOT.tag
8774
 
web2py.gluon.html.TH.tag
8775
 
web2py.gluon.html.THEAD.tag
8776
 
web2py.gluon.html.TITLE.tag
8777
 
web2py.gluon.html.TR.tag
8778
 
web2py.gluon.html.TT.tag
8779
 
web2py.gluon.html.UL.tag
8780
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-565', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'br'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n\n'</tt> </tt>
8781
 
<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-566" class="py-name"><a title="web2py.gluon.html.A.tag
8782
 
web2py.gluon.html.B.tag
8783
 
web2py.gluon.html.BEAUTIFY.tag
8784
 
web2py.gluon.html.BODY.tag
8785
 
web2py.gluon.html.BR.tag
8786
 
web2py.gluon.html.BUTTON.tag
8787
 
web2py.gluon.html.CAT.tag
8788
 
web2py.gluon.html.CENTER.tag
8789
 
web2py.gluon.html.COL.tag
8790
 
web2py.gluon.html.COLGROUP.tag
8791
 
web2py.gluon.html.DIV.tag
8792
 
web2py.gluon.html.EM.tag
8793
 
web2py.gluon.html.EMBED.tag
8794
 
web2py.gluon.html.FIELDSET.tag
8795
 
web2py.gluon.html.FORM.tag
8796
 
web2py.gluon.html.H1.tag
8797
 
web2py.gluon.html.H2.tag
8798
 
web2py.gluon.html.H3.tag
8799
 
web2py.gluon.html.H4.tag
8800
 
web2py.gluon.html.H5.tag
8801
 
web2py.gluon.html.H6.tag
8802
 
web2py.gluon.html.HEAD.tag
8803
 
web2py.gluon.html.HR.tag
8804
 
web2py.gluon.html.HTML.tag
8805
 
web2py.gluon.html.I.tag
8806
 
web2py.gluon.html.IFRAME.tag
8807
 
web2py.gluon.html.IMG.tag
8808
 
web2py.gluon.html.INPUT.tag
8809
 
web2py.gluon.html.LABEL.tag
8810
 
web2py.gluon.html.LEGEND.tag
8811
 
web2py.gluon.html.LI.tag
8812
 
web2py.gluon.html.LINK.tag
8813
 
web2py.gluon.html.MENU.tag
8814
 
web2py.gluon.html.META.tag
8815
 
web2py.gluon.html.OBJECT.tag
8816
 
web2py.gluon.html.OL.tag
8817
 
web2py.gluon.html.OPTGROUP.tag
8818
 
web2py.gluon.html.OPTION.tag
8819
 
web2py.gluon.html.P.tag
8820
 
web2py.gluon.html.PRE.tag
8821
 
web2py.gluon.html.SCRIPT.tag
8822
 
web2py.gluon.html.SELECT.tag
8823
 
web2py.gluon.html.SPAN.tag
8824
 
web2py.gluon.html.STYLE.tag
8825
 
web2py.gluon.html.TABLE.tag
8826
 
web2py.gluon.html.TBODY.tag
8827
 
web2py.gluon.html.TD.tag
8828
 
web2py.gluon.html.TEXTAREA.tag
8829
 
web2py.gluon.html.TFOOT.tag
8830
 
web2py.gluon.html.TH.tag
8831
 
web2py.gluon.html.THEAD.tag
8832
 
web2py.gluon.html.TITLE.tag
8833
 
web2py.gluon.html.TR.tag
8834
 
web2py.gluon.html.TT.tag
8835
 
web2py.gluon.html.UL.tag
8836
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-566', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h1'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'# '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8837
 
<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-567" class="py-name"><a title="web2py.gluon.html.A.tag
8838
 
web2py.gluon.html.B.tag
8839
 
web2py.gluon.html.BEAUTIFY.tag
8840
 
web2py.gluon.html.BODY.tag
8841
 
web2py.gluon.html.BR.tag
8842
 
web2py.gluon.html.BUTTON.tag
8843
 
web2py.gluon.html.CAT.tag
8844
 
web2py.gluon.html.CENTER.tag
8845
 
web2py.gluon.html.COL.tag
8846
 
web2py.gluon.html.COLGROUP.tag
8847
 
web2py.gluon.html.DIV.tag
8848
 
web2py.gluon.html.EM.tag
8849
 
web2py.gluon.html.EMBED.tag
8850
 
web2py.gluon.html.FIELDSET.tag
8851
 
web2py.gluon.html.FORM.tag
8852
 
web2py.gluon.html.H1.tag
8853
 
web2py.gluon.html.H2.tag
8854
 
web2py.gluon.html.H3.tag
8855
 
web2py.gluon.html.H4.tag
8856
 
web2py.gluon.html.H5.tag
8857
 
web2py.gluon.html.H6.tag
8858
 
web2py.gluon.html.HEAD.tag
8859
 
web2py.gluon.html.HR.tag
8860
 
web2py.gluon.html.HTML.tag
8861
 
web2py.gluon.html.I.tag
8862
 
web2py.gluon.html.IFRAME.tag
8863
 
web2py.gluon.html.IMG.tag
8864
 
web2py.gluon.html.INPUT.tag
8865
 
web2py.gluon.html.LABEL.tag
8866
 
web2py.gluon.html.LEGEND.tag
8867
 
web2py.gluon.html.LI.tag
8868
 
web2py.gluon.html.LINK.tag
8869
 
web2py.gluon.html.MENU.tag
8870
 
web2py.gluon.html.META.tag
8871
 
web2py.gluon.html.OBJECT.tag
8872
 
web2py.gluon.html.OL.tag
8873
 
web2py.gluon.html.OPTGROUP.tag
8874
 
web2py.gluon.html.OPTION.tag
8875
 
web2py.gluon.html.P.tag
8876
 
web2py.gluon.html.PRE.tag
8877
 
web2py.gluon.html.SCRIPT.tag
8878
 
web2py.gluon.html.SELECT.tag
8879
 
web2py.gluon.html.SPAN.tag
8880
 
web2py.gluon.html.STYLE.tag
8881
 
web2py.gluon.html.TABLE.tag
8882
 
web2py.gluon.html.TBODY.tag
8883
 
web2py.gluon.html.TD.tag
8884
 
web2py.gluon.html.TEXTAREA.tag
8885
 
web2py.gluon.html.TFOOT.tag
8886
 
web2py.gluon.html.TH.tag
8887
 
web2py.gluon.html.THEAD.tag
8888
 
web2py.gluon.html.TITLE.tag
8889
 
web2py.gluon.html.TR.tag
8890
 
web2py.gluon.html.TT.tag
8891
 
web2py.gluon.html.UL.tag
8892
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-567', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h2'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">2</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8893
 
<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-568" class="py-name"><a title="web2py.gluon.html.A.tag
8894
 
web2py.gluon.html.B.tag
8895
 
web2py.gluon.html.BEAUTIFY.tag
8896
 
web2py.gluon.html.BODY.tag
8897
 
web2py.gluon.html.BR.tag
8898
 
web2py.gluon.html.BUTTON.tag
8899
 
web2py.gluon.html.CAT.tag
8900
 
web2py.gluon.html.CENTER.tag
8901
 
web2py.gluon.html.COL.tag
8902
 
web2py.gluon.html.COLGROUP.tag
8903
 
web2py.gluon.html.DIV.tag
8904
 
web2py.gluon.html.EM.tag
8905
 
web2py.gluon.html.EMBED.tag
8906
 
web2py.gluon.html.FIELDSET.tag
8907
 
web2py.gluon.html.FORM.tag
8908
 
web2py.gluon.html.H1.tag
8909
 
web2py.gluon.html.H2.tag
8910
 
web2py.gluon.html.H3.tag
8911
 
web2py.gluon.html.H4.tag
8912
 
web2py.gluon.html.H5.tag
8913
 
web2py.gluon.html.H6.tag
8914
 
web2py.gluon.html.HEAD.tag
8915
 
web2py.gluon.html.HR.tag
8916
 
web2py.gluon.html.HTML.tag
8917
 
web2py.gluon.html.I.tag
8918
 
web2py.gluon.html.IFRAME.tag
8919
 
web2py.gluon.html.IMG.tag
8920
 
web2py.gluon.html.INPUT.tag
8921
 
web2py.gluon.html.LABEL.tag
8922
 
web2py.gluon.html.LEGEND.tag
8923
 
web2py.gluon.html.LI.tag
8924
 
web2py.gluon.html.LINK.tag
8925
 
web2py.gluon.html.MENU.tag
8926
 
web2py.gluon.html.META.tag
8927
 
web2py.gluon.html.OBJECT.tag
8928
 
web2py.gluon.html.OL.tag
8929
 
web2py.gluon.html.OPTGROUP.tag
8930
 
web2py.gluon.html.OPTION.tag
8931
 
web2py.gluon.html.P.tag
8932
 
web2py.gluon.html.PRE.tag
8933
 
web2py.gluon.html.SCRIPT.tag
8934
 
web2py.gluon.html.SELECT.tag
8935
 
web2py.gluon.html.SPAN.tag
8936
 
web2py.gluon.html.STYLE.tag
8937
 
web2py.gluon.html.TABLE.tag
8938
 
web2py.gluon.html.TBODY.tag
8939
 
web2py.gluon.html.TD.tag
8940
 
web2py.gluon.html.TEXTAREA.tag
8941
 
web2py.gluon.html.TFOOT.tag
8942
 
web2py.gluon.html.TH.tag
8943
 
web2py.gluon.html.THEAD.tag
8944
 
web2py.gluon.html.TITLE.tag
8945
 
web2py.gluon.html.TR.tag
8946
 
web2py.gluon.html.TT.tag
8947
 
web2py.gluon.html.UL.tag
8948
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-568', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h3'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
8949
 
<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-569" class="py-name"><a title="web2py.gluon.html.A.tag
8950
 
web2py.gluon.html.B.tag
8951
 
web2py.gluon.html.BEAUTIFY.tag
8952
 
web2py.gluon.html.BODY.tag
8953
 
web2py.gluon.html.BR.tag
8954
 
web2py.gluon.html.BUTTON.tag
8955
 
web2py.gluon.html.CAT.tag
8956
 
web2py.gluon.html.CENTER.tag
8957
 
web2py.gluon.html.COL.tag
8958
 
web2py.gluon.html.COLGROUP.tag
8959
 
web2py.gluon.html.DIV.tag
8960
 
web2py.gluon.html.EM.tag
8961
 
web2py.gluon.html.EMBED.tag
8962
 
web2py.gluon.html.FIELDSET.tag
8963
 
web2py.gluon.html.FORM.tag
8964
 
web2py.gluon.html.H1.tag
8965
 
web2py.gluon.html.H2.tag
8966
 
web2py.gluon.html.H3.tag
8967
 
web2py.gluon.html.H4.tag
8968
 
web2py.gluon.html.H5.tag
8969
 
web2py.gluon.html.H6.tag
8970
 
web2py.gluon.html.HEAD.tag
8971
 
web2py.gluon.html.HR.tag
8972
 
web2py.gluon.html.HTML.tag
8973
 
web2py.gluon.html.I.tag
8974
 
web2py.gluon.html.IFRAME.tag
8975
 
web2py.gluon.html.IMG.tag
8976
 
web2py.gluon.html.INPUT.tag
8977
 
web2py.gluon.html.LABEL.tag
8978
 
web2py.gluon.html.LEGEND.tag
8979
 
web2py.gluon.html.LI.tag
8980
 
web2py.gluon.html.LINK.tag
8981
 
web2py.gluon.html.MENU.tag
8982
 
web2py.gluon.html.META.tag
8983
 
web2py.gluon.html.OBJECT.tag
8984
 
web2py.gluon.html.OL.tag
8985
 
web2py.gluon.html.OPTGROUP.tag
8986
 
web2py.gluon.html.OPTION.tag
8987
 
web2py.gluon.html.P.tag
8988
 
web2py.gluon.html.PRE.tag
8989
 
web2py.gluon.html.SCRIPT.tag
8990
 
web2py.gluon.html.SELECT.tag
8991
 
web2py.gluon.html.SPAN.tag
8992
 
web2py.gluon.html.STYLE.tag
8993
 
web2py.gluon.html.TABLE.tag
8994
 
web2py.gluon.html.TBODY.tag
8995
 
web2py.gluon.html.TD.tag
8996
 
web2py.gluon.html.TEXTAREA.tag
8997
 
web2py.gluon.html.TFOOT.tag
8998
 
web2py.gluon.html.TH.tag
8999
 
web2py.gluon.html.THEAD.tag
9000
 
web2py.gluon.html.TITLE.tag
9001
 
web2py.gluon.html.TR.tag
9002
 
web2py.gluon.html.TT.tag
9003
 
web2py.gluon.html.UL.tag
9004
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-569', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h4'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">4</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
9005
 
<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-570" class="py-name"><a title="web2py.gluon.html.A.tag
9006
 
web2py.gluon.html.B.tag
9007
 
web2py.gluon.html.BEAUTIFY.tag
9008
 
web2py.gluon.html.BODY.tag
9009
 
web2py.gluon.html.BR.tag
9010
 
web2py.gluon.html.BUTTON.tag
9011
 
web2py.gluon.html.CAT.tag
9012
 
web2py.gluon.html.CENTER.tag
9013
 
web2py.gluon.html.COL.tag
9014
 
web2py.gluon.html.COLGROUP.tag
9015
 
web2py.gluon.html.DIV.tag
9016
 
web2py.gluon.html.EM.tag
9017
 
web2py.gluon.html.EMBED.tag
9018
 
web2py.gluon.html.FIELDSET.tag
9019
 
web2py.gluon.html.FORM.tag
9020
 
web2py.gluon.html.H1.tag
9021
 
web2py.gluon.html.H2.tag
9022
 
web2py.gluon.html.H3.tag
9023
 
web2py.gluon.html.H4.tag
9024
 
web2py.gluon.html.H5.tag
9025
 
web2py.gluon.html.H6.tag
9026
 
web2py.gluon.html.HEAD.tag
9027
 
web2py.gluon.html.HR.tag
9028
 
web2py.gluon.html.HTML.tag
9029
 
web2py.gluon.html.I.tag
9030
 
web2py.gluon.html.IFRAME.tag
9031
 
web2py.gluon.html.IMG.tag
9032
 
web2py.gluon.html.INPUT.tag
9033
 
web2py.gluon.html.LABEL.tag
9034
 
web2py.gluon.html.LEGEND.tag
9035
 
web2py.gluon.html.LI.tag
9036
 
web2py.gluon.html.LINK.tag
9037
 
web2py.gluon.html.MENU.tag
9038
 
web2py.gluon.html.META.tag
9039
 
web2py.gluon.html.OBJECT.tag
9040
 
web2py.gluon.html.OL.tag
9041
 
web2py.gluon.html.OPTGROUP.tag
9042
 
web2py.gluon.html.OPTION.tag
9043
 
web2py.gluon.html.P.tag
9044
 
web2py.gluon.html.PRE.tag
9045
 
web2py.gluon.html.SCRIPT.tag
9046
 
web2py.gluon.html.SELECT.tag
9047
 
web2py.gluon.html.SPAN.tag
9048
 
web2py.gluon.html.STYLE.tag
9049
 
web2py.gluon.html.TABLE.tag
9050
 
web2py.gluon.html.TBODY.tag
9051
 
web2py.gluon.html.TD.tag
9052
 
web2py.gluon.html.TEXTAREA.tag
9053
 
web2py.gluon.html.TFOOT.tag
9054
 
web2py.gluon.html.TH.tag
9055
 
web2py.gluon.html.THEAD.tag
9056
 
web2py.gluon.html.TITLE.tag
9057
 
web2py.gluon.html.TR.tag
9058
 
web2py.gluon.html.TT.tag
9059
 
web2py.gluon.html.UL.tag
9060
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-570', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
9061
 
<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-571" class="py-name"><a title="web2py.gluon.html.A.tag
9062
 
web2py.gluon.html.B.tag
9063
 
web2py.gluon.html.BEAUTIFY.tag
9064
 
web2py.gluon.html.BODY.tag
9065
 
web2py.gluon.html.BR.tag
9066
 
web2py.gluon.html.BUTTON.tag
9067
 
web2py.gluon.html.CAT.tag
9068
 
web2py.gluon.html.CENTER.tag
9069
 
web2py.gluon.html.COL.tag
9070
 
web2py.gluon.html.COLGROUP.tag
9071
 
web2py.gluon.html.DIV.tag
9072
 
web2py.gluon.html.EM.tag
9073
 
web2py.gluon.html.EMBED.tag
9074
 
web2py.gluon.html.FIELDSET.tag
9075
 
web2py.gluon.html.FORM.tag
9076
 
web2py.gluon.html.H1.tag
9077
 
web2py.gluon.html.H2.tag
9078
 
web2py.gluon.html.H3.tag
9079
 
web2py.gluon.html.H4.tag
9080
 
web2py.gluon.html.H5.tag
9081
 
web2py.gluon.html.H6.tag
9082
 
web2py.gluon.html.HEAD.tag
9083
 
web2py.gluon.html.HR.tag
9084
 
web2py.gluon.html.HTML.tag
9085
 
web2py.gluon.html.I.tag
9086
 
web2py.gluon.html.IFRAME.tag
9087
 
web2py.gluon.html.IMG.tag
9088
 
web2py.gluon.html.INPUT.tag
9089
 
web2py.gluon.html.LABEL.tag
9090
 
web2py.gluon.html.LEGEND.tag
9091
 
web2py.gluon.html.LI.tag
9092
 
web2py.gluon.html.LINK.tag
9093
 
web2py.gluon.html.MENU.tag
9094
 
web2py.gluon.html.META.tag
9095
 
web2py.gluon.html.OBJECT.tag
9096
 
web2py.gluon.html.OL.tag
9097
 
web2py.gluon.html.OPTGROUP.tag
9098
 
web2py.gluon.html.OPTION.tag
9099
 
web2py.gluon.html.P.tag
9100
 
web2py.gluon.html.PRE.tag
9101
 
web2py.gluon.html.SCRIPT.tag
9102
 
web2py.gluon.html.SELECT.tag
9103
 
web2py.gluon.html.SPAN.tag
9104
 
web2py.gluon.html.STYLE.tag
9105
 
web2py.gluon.html.TABLE.tag
9106
 
web2py.gluon.html.TBODY.tag
9107
 
web2py.gluon.html.TD.tag
9108
 
web2py.gluon.html.TEXTAREA.tag
9109
 
web2py.gluon.html.TFOOT.tag
9110
 
web2py.gluon.html.TH.tag
9111
 
web2py.gluon.html.THEAD.tag
9112
 
web2py.gluon.html.TITLE.tag
9113
 
web2py.gluon.html.TR.tag
9114
 
web2py.gluon.html.TT.tag
9115
 
web2py.gluon.html.UL.tag
9116
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-571', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'li'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n- '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
9117
 
<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-572" class="py-name"><a title="web2py.gluon.html.A.tag
9118
 
web2py.gluon.html.B.tag
9119
 
web2py.gluon.html.BEAUTIFY.tag
9120
 
web2py.gluon.html.BODY.tag
9121
 
web2py.gluon.html.BR.tag
9122
 
web2py.gluon.html.BUTTON.tag
9123
 
web2py.gluon.html.CAT.tag
9124
 
web2py.gluon.html.CENTER.tag
9125
 
web2py.gluon.html.COL.tag
9126
 
web2py.gluon.html.COLGROUP.tag
9127
 
web2py.gluon.html.DIV.tag
9128
 
web2py.gluon.html.EM.tag
9129
 
web2py.gluon.html.EMBED.tag
9130
 
web2py.gluon.html.FIELDSET.tag
9131
 
web2py.gluon.html.FORM.tag
9132
 
web2py.gluon.html.H1.tag
9133
 
web2py.gluon.html.H2.tag
9134
 
web2py.gluon.html.H3.tag
9135
 
web2py.gluon.html.H4.tag
9136
 
web2py.gluon.html.H5.tag
9137
 
web2py.gluon.html.H6.tag
9138
 
web2py.gluon.html.HEAD.tag
9139
 
web2py.gluon.html.HR.tag
9140
 
web2py.gluon.html.HTML.tag
9141
 
web2py.gluon.html.I.tag
9142
 
web2py.gluon.html.IFRAME.tag
9143
 
web2py.gluon.html.IMG.tag
9144
 
web2py.gluon.html.INPUT.tag
9145
 
web2py.gluon.html.LABEL.tag
9146
 
web2py.gluon.html.LEGEND.tag
9147
 
web2py.gluon.html.LI.tag
9148
 
web2py.gluon.html.LINK.tag
9149
 
web2py.gluon.html.MENU.tag
9150
 
web2py.gluon.html.META.tag
9151
 
web2py.gluon.html.OBJECT.tag
9152
 
web2py.gluon.html.OL.tag
9153
 
web2py.gluon.html.OPTGROUP.tag
9154
 
web2py.gluon.html.OPTION.tag
9155
 
web2py.gluon.html.P.tag
9156
 
web2py.gluon.html.PRE.tag
9157
 
web2py.gluon.html.SCRIPT.tag
9158
 
web2py.gluon.html.SELECT.tag
9159
 
web2py.gluon.html.SPAN.tag
9160
 
web2py.gluon.html.STYLE.tag
9161
 
web2py.gluon.html.TABLE.tag
9162
 
web2py.gluon.html.TBODY.tag
9163
 
web2py.gluon.html.TD.tag
9164
 
web2py.gluon.html.TEXTAREA.tag
9165
 
web2py.gluon.html.TFOOT.tag
9166
 
web2py.gluon.html.TH.tag
9167
 
web2py.gluon.html.THEAD.tag
9168
 
web2py.gluon.html.TITLE.tag
9169
 
web2py.gluon.html.TR.tag
9170
 
web2py.gluon.html.TT.tag
9171
 
web2py.gluon.html.UL.tag
9172
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-572', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'tr'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</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">'\n'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">'\n'</tt> </tt>
9173
 
<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-573" class="py-name"><a title="web2py.gluon.html.A.tag
9174
 
web2py.gluon.html.B.tag
9175
 
web2py.gluon.html.BEAUTIFY.tag
9176
 
web2py.gluon.html.BODY.tag
9177
 
web2py.gluon.html.BR.tag
9178
 
web2py.gluon.html.BUTTON.tag
9179
 
web2py.gluon.html.CAT.tag
9180
 
web2py.gluon.html.CENTER.tag
9181
 
web2py.gluon.html.COL.tag
9182
 
web2py.gluon.html.COLGROUP.tag
9183
 
web2py.gluon.html.DIV.tag
9184
 
web2py.gluon.html.EM.tag
9185
 
web2py.gluon.html.EMBED.tag
9186
 
web2py.gluon.html.FIELDSET.tag
9187
 
web2py.gluon.html.FORM.tag
9188
 
web2py.gluon.html.H1.tag
9189
 
web2py.gluon.html.H2.tag
9190
 
web2py.gluon.html.H3.tag
9191
 
web2py.gluon.html.H4.tag
9192
 
web2py.gluon.html.H5.tag
9193
 
web2py.gluon.html.H6.tag
9194
 
web2py.gluon.html.HEAD.tag
9195
 
web2py.gluon.html.HR.tag
9196
 
web2py.gluon.html.HTML.tag
9197
 
web2py.gluon.html.I.tag
9198
 
web2py.gluon.html.IFRAME.tag
9199
 
web2py.gluon.html.IMG.tag
9200
 
web2py.gluon.html.INPUT.tag
9201
 
web2py.gluon.html.LABEL.tag
9202
 
web2py.gluon.html.LEGEND.tag
9203
 
web2py.gluon.html.LI.tag
9204
 
web2py.gluon.html.LINK.tag
9205
 
web2py.gluon.html.MENU.tag
9206
 
web2py.gluon.html.META.tag
9207
 
web2py.gluon.html.OBJECT.tag
9208
 
web2py.gluon.html.OL.tag
9209
 
web2py.gluon.html.OPTGROUP.tag
9210
 
web2py.gluon.html.OPTION.tag
9211
 
web2py.gluon.html.P.tag
9212
 
web2py.gluon.html.PRE.tag
9213
 
web2py.gluon.html.SCRIPT.tag
9214
 
web2py.gluon.html.SELECT.tag
9215
 
web2py.gluon.html.SPAN.tag
9216
 
web2py.gluon.html.STYLE.tag
9217
 
web2py.gluon.html.TABLE.tag
9218
 
web2py.gluon.html.TBODY.tag
9219
 
web2py.gluon.html.TD.tag
9220
 
web2py.gluon.html.TEXTAREA.tag
9221
 
web2py.gluon.html.TFOOT.tag
9222
 
web2py.gluon.html.TH.tag
9223
 
web2py.gluon.html.THEAD.tag
9224
 
web2py.gluon.html.TITLE.tag
9225
 
web2py.gluon.html.TR.tag
9226
 
web2py.gluon.html.TT.tag
9227
 
web2py.gluon.html.UL.tag
9228
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-573', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'table'</tt><tt class="py-op">,</tt><tt class="py-string">'blockquote'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n-----\n'</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n------\n'</tt> </tt>
9229
 
<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-574" class="py-name"><a title="web2py.gluon.html.A.tag
9230
 
web2py.gluon.html.B.tag
9231
 
web2py.gluon.html.BEAUTIFY.tag
9232
 
web2py.gluon.html.BODY.tag
9233
 
web2py.gluon.html.BR.tag
9234
 
web2py.gluon.html.BUTTON.tag
9235
 
web2py.gluon.html.CAT.tag
9236
 
web2py.gluon.html.CENTER.tag
9237
 
web2py.gluon.html.COL.tag
9238
 
web2py.gluon.html.COLGROUP.tag
9239
 
web2py.gluon.html.DIV.tag
9240
 
web2py.gluon.html.EM.tag
9241
 
web2py.gluon.html.EMBED.tag
9242
 
web2py.gluon.html.FIELDSET.tag
9243
 
web2py.gluon.html.FORM.tag
9244
 
web2py.gluon.html.H1.tag
9245
 
web2py.gluon.html.H2.tag
9246
 
web2py.gluon.html.H3.tag
9247
 
web2py.gluon.html.H4.tag
9248
 
web2py.gluon.html.H5.tag
9249
 
web2py.gluon.html.H6.tag
9250
 
web2py.gluon.html.HEAD.tag
9251
 
web2py.gluon.html.HR.tag
9252
 
web2py.gluon.html.HTML.tag
9253
 
web2py.gluon.html.I.tag
9254
 
web2py.gluon.html.IFRAME.tag
9255
 
web2py.gluon.html.IMG.tag
9256
 
web2py.gluon.html.INPUT.tag
9257
 
web2py.gluon.html.LABEL.tag
9258
 
web2py.gluon.html.LEGEND.tag
9259
 
web2py.gluon.html.LI.tag
9260
 
web2py.gluon.html.LINK.tag
9261
 
web2py.gluon.html.MENU.tag
9262
 
web2py.gluon.html.META.tag
9263
 
web2py.gluon.html.OBJECT.tag
9264
 
web2py.gluon.html.OL.tag
9265
 
web2py.gluon.html.OPTGROUP.tag
9266
 
web2py.gluon.html.OPTION.tag
9267
 
web2py.gluon.html.P.tag
9268
 
web2py.gluon.html.PRE.tag
9269
 
web2py.gluon.html.SCRIPT.tag
9270
 
web2py.gluon.html.SELECT.tag
9271
 
web2py.gluon.html.SPAN.tag
9272
 
web2py.gluon.html.STYLE.tag
9273
 
web2py.gluon.html.TABLE.tag
9274
 
web2py.gluon.html.TBODY.tag
9275
 
web2py.gluon.html.TD.tag
9276
 
web2py.gluon.html.TEXTAREA.tag
9277
 
web2py.gluon.html.TFOOT.tag
9278
 
web2py.gluon.html.TH.tag
9279
 
web2py.gluon.html.THEAD.tag
9280
 
web2py.gluon.html.TITLE.tag
9281
 
web2py.gluon.html.TR.tag
9282
 
web2py.gluon.html.TT.tag
9283
 
web2py.gluon.html.UL.tag
9284
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-574', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'td'</tt><tt class="py-op">,</tt><tt class="py-string">'th'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">' | '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt> </tt>
9285
 
<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-575" class="py-name"><a title="web2py.gluon.html.A.tag
9286
 
web2py.gluon.html.B.tag
9287
 
web2py.gluon.html.BEAUTIFY.tag
9288
 
web2py.gluon.html.BODY.tag
9289
 
web2py.gluon.html.BR.tag
9290
 
web2py.gluon.html.BUTTON.tag
9291
 
web2py.gluon.html.CAT.tag
9292
 
web2py.gluon.html.CENTER.tag
9293
 
web2py.gluon.html.COL.tag
9294
 
web2py.gluon.html.COLGROUP.tag
9295
 
web2py.gluon.html.DIV.tag
9296
 
web2py.gluon.html.EM.tag
9297
 
web2py.gluon.html.EMBED.tag
9298
 
web2py.gluon.html.FIELDSET.tag
9299
 
web2py.gluon.html.FORM.tag
9300
 
web2py.gluon.html.H1.tag
9301
 
web2py.gluon.html.H2.tag
9302
 
web2py.gluon.html.H3.tag
9303
 
web2py.gluon.html.H4.tag
9304
 
web2py.gluon.html.H5.tag
9305
 
web2py.gluon.html.H6.tag
9306
 
web2py.gluon.html.HEAD.tag
9307
 
web2py.gluon.html.HR.tag
9308
 
web2py.gluon.html.HTML.tag
9309
 
web2py.gluon.html.I.tag
9310
 
web2py.gluon.html.IFRAME.tag
9311
 
web2py.gluon.html.IMG.tag
9312
 
web2py.gluon.html.INPUT.tag
9313
 
web2py.gluon.html.LABEL.tag
9314
 
web2py.gluon.html.LEGEND.tag
9315
 
web2py.gluon.html.LI.tag
9316
 
web2py.gluon.html.LINK.tag
9317
 
web2py.gluon.html.MENU.tag
9318
 
web2py.gluon.html.META.tag
9319
 
web2py.gluon.html.OBJECT.tag
9320
 
web2py.gluon.html.OL.tag
9321
 
web2py.gluon.html.OPTGROUP.tag
9322
 
web2py.gluon.html.OPTION.tag
9323
 
web2py.gluon.html.P.tag
9324
 
web2py.gluon.html.PRE.tag
9325
 
web2py.gluon.html.SCRIPT.tag
9326
 
web2py.gluon.html.SELECT.tag
9327
 
web2py.gluon.html.SPAN.tag
9328
 
web2py.gluon.html.STYLE.tag
9329
 
web2py.gluon.html.TABLE.tag
9330
 
web2py.gluon.html.TBODY.tag
9331
 
web2py.gluon.html.TD.tag
9332
 
web2py.gluon.html.TEXTAREA.tag
9333
 
web2py.gluon.html.TFOOT.tag
9334
 
web2py.gluon.html.TH.tag
9335
 
web2py.gluon.html.THEAD.tag
9336
 
web2py.gluon.html.TITLE.tag
9337
 
web2py.gluon.html.TR.tag
9338
 
web2py.gluon.html.TT.tag
9339
 
web2py.gluon.html.UL.tag
9340
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-575', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt><tt class="py-string">'strong'</tt><tt class="py-op">,</tt><tt class="py-string">'label'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'**%s**'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
9341
 
<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-576" class="py-name"><a title="web2py.gluon.html.A.tag
9342
 
web2py.gluon.html.B.tag
9343
 
web2py.gluon.html.BEAUTIFY.tag
9344
 
web2py.gluon.html.BODY.tag
9345
 
web2py.gluon.html.BR.tag
9346
 
web2py.gluon.html.BUTTON.tag
9347
 
web2py.gluon.html.CAT.tag
9348
 
web2py.gluon.html.CENTER.tag
9349
 
web2py.gluon.html.COL.tag
9350
 
web2py.gluon.html.COLGROUP.tag
9351
 
web2py.gluon.html.DIV.tag
9352
 
web2py.gluon.html.EM.tag
9353
 
web2py.gluon.html.EMBED.tag
9354
 
web2py.gluon.html.FIELDSET.tag
9355
 
web2py.gluon.html.FORM.tag
9356
 
web2py.gluon.html.H1.tag
9357
 
web2py.gluon.html.H2.tag
9358
 
web2py.gluon.html.H3.tag
9359
 
web2py.gluon.html.H4.tag
9360
 
web2py.gluon.html.H5.tag
9361
 
web2py.gluon.html.H6.tag
9362
 
web2py.gluon.html.HEAD.tag
9363
 
web2py.gluon.html.HR.tag
9364
 
web2py.gluon.html.HTML.tag
9365
 
web2py.gluon.html.I.tag
9366
 
web2py.gluon.html.IFRAME.tag
9367
 
web2py.gluon.html.IMG.tag
9368
 
web2py.gluon.html.INPUT.tag
9369
 
web2py.gluon.html.LABEL.tag
9370
 
web2py.gluon.html.LEGEND.tag
9371
 
web2py.gluon.html.LI.tag
9372
 
web2py.gluon.html.LINK.tag
9373
 
web2py.gluon.html.MENU.tag
9374
 
web2py.gluon.html.META.tag
9375
 
web2py.gluon.html.OBJECT.tag
9376
 
web2py.gluon.html.OL.tag
9377
 
web2py.gluon.html.OPTGROUP.tag
9378
 
web2py.gluon.html.OPTION.tag
9379
 
web2py.gluon.html.P.tag
9380
 
web2py.gluon.html.PRE.tag
9381
 
web2py.gluon.html.SCRIPT.tag
9382
 
web2py.gluon.html.SELECT.tag
9383
 
web2py.gluon.html.SPAN.tag
9384
 
web2py.gluon.html.STYLE.tag
9385
 
web2py.gluon.html.TABLE.tag
9386
 
web2py.gluon.html.TBODY.tag
9387
 
web2py.gluon.html.TD.tag
9388
 
web2py.gluon.html.TEXTAREA.tag
9389
 
web2py.gluon.html.TFOOT.tag
9390
 
web2py.gluon.html.TH.tag
9391
 
web2py.gluon.html.THEAD.tag
9392
 
web2py.gluon.html.TITLE.tag
9393
 
web2py.gluon.html.TR.tag
9394
 
web2py.gluon.html.TT.tag
9395
 
web2py.gluon.html.UL.tag
9396
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-576', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'em'</tt><tt class="py-op">,</tt><tt class="py-string">'i'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">"''%s''"</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
9397
 
<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-577" class="py-name"><a title="web2py.gluon.html.A.tag
9398
 
web2py.gluon.html.B.tag
9399
 
web2py.gluon.html.BEAUTIFY.tag
9400
 
web2py.gluon.html.BODY.tag
9401
 
web2py.gluon.html.BR.tag
9402
 
web2py.gluon.html.BUTTON.tag
9403
 
web2py.gluon.html.CAT.tag
9404
 
web2py.gluon.html.CENTER.tag
9405
 
web2py.gluon.html.COL.tag
9406
 
web2py.gluon.html.COLGROUP.tag
9407
 
web2py.gluon.html.DIV.tag
9408
 
web2py.gluon.html.EM.tag
9409
 
web2py.gluon.html.EMBED.tag
9410
 
web2py.gluon.html.FIELDSET.tag
9411
 
web2py.gluon.html.FORM.tag
9412
 
web2py.gluon.html.H1.tag
9413
 
web2py.gluon.html.H2.tag
9414
 
web2py.gluon.html.H3.tag
9415
 
web2py.gluon.html.H4.tag
9416
 
web2py.gluon.html.H5.tag
9417
 
web2py.gluon.html.H6.tag
9418
 
web2py.gluon.html.HEAD.tag
9419
 
web2py.gluon.html.HR.tag
9420
 
web2py.gluon.html.HTML.tag
9421
 
web2py.gluon.html.I.tag
9422
 
web2py.gluon.html.IFRAME.tag
9423
 
web2py.gluon.html.IMG.tag
9424
 
web2py.gluon.html.INPUT.tag
9425
 
web2py.gluon.html.LABEL.tag
9426
 
web2py.gluon.html.LEGEND.tag
9427
 
web2py.gluon.html.LI.tag
9428
 
web2py.gluon.html.LINK.tag
9429
 
web2py.gluon.html.MENU.tag
9430
 
web2py.gluon.html.META.tag
9431
 
web2py.gluon.html.OBJECT.tag
9432
 
web2py.gluon.html.OL.tag
9433
 
web2py.gluon.html.OPTGROUP.tag
9434
 
web2py.gluon.html.OPTION.tag
9435
 
web2py.gluon.html.P.tag
9436
 
web2py.gluon.html.PRE.tag
9437
 
web2py.gluon.html.SCRIPT.tag
9438
 
web2py.gluon.html.SELECT.tag
9439
 
web2py.gluon.html.SPAN.tag
9440
 
web2py.gluon.html.STYLE.tag
9441
 
web2py.gluon.html.TABLE.tag
9442
 
web2py.gluon.html.TBODY.tag
9443
 
web2py.gluon.html.TD.tag
9444
 
web2py.gluon.html.TEXTAREA.tag
9445
 
web2py.gluon.html.TFOOT.tag
9446
 
web2py.gluon.html.TH.tag
9447
 
web2py.gluon.html.THEAD.tag
9448
 
web2py.gluon.html.TITLE.tag
9449
 
web2py.gluon.html.TR.tag
9450
 
web2py.gluon.html.TT.tag
9451
 
web2py.gluon.html.UL.tag
9452
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-577', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'tt'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'``%s``'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-578', 'strip', 'link-143');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
9453
 
<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-579" class="py-name"><a title="web2py.gluon.html.A.tag
9454
 
web2py.gluon.html.B.tag
9455
 
web2py.gluon.html.BEAUTIFY.tag
9456
 
web2py.gluon.html.BODY.tag
9457
 
web2py.gluon.html.BR.tag
9458
 
web2py.gluon.html.BUTTON.tag
9459
 
web2py.gluon.html.CAT.tag
9460
 
web2py.gluon.html.CENTER.tag
9461
 
web2py.gluon.html.COL.tag
9462
 
web2py.gluon.html.COLGROUP.tag
9463
 
web2py.gluon.html.DIV.tag
9464
 
web2py.gluon.html.EM.tag
9465
 
web2py.gluon.html.EMBED.tag
9466
 
web2py.gluon.html.FIELDSET.tag
9467
 
web2py.gluon.html.FORM.tag
9468
 
web2py.gluon.html.H1.tag
9469
 
web2py.gluon.html.H2.tag
9470
 
web2py.gluon.html.H3.tag
9471
 
web2py.gluon.html.H4.tag
9472
 
web2py.gluon.html.H5.tag
9473
 
web2py.gluon.html.H6.tag
9474
 
web2py.gluon.html.HEAD.tag
9475
 
web2py.gluon.html.HR.tag
9476
 
web2py.gluon.html.HTML.tag
9477
 
web2py.gluon.html.I.tag
9478
 
web2py.gluon.html.IFRAME.tag
9479
 
web2py.gluon.html.IMG.tag
9480
 
web2py.gluon.html.INPUT.tag
9481
 
web2py.gluon.html.LABEL.tag
9482
 
web2py.gluon.html.LEGEND.tag
9483
 
web2py.gluon.html.LI.tag
9484
 
web2py.gluon.html.LINK.tag
9485
 
web2py.gluon.html.MENU.tag
9486
 
web2py.gluon.html.META.tag
9487
 
web2py.gluon.html.OBJECT.tag
9488
 
web2py.gluon.html.OL.tag
9489
 
web2py.gluon.html.OPTGROUP.tag
9490
 
web2py.gluon.html.OPTION.tag
9491
 
web2py.gluon.html.P.tag
9492
 
web2py.gluon.html.PRE.tag
9493
 
web2py.gluon.html.SCRIPT.tag
9494
 
web2py.gluon.html.SELECT.tag
9495
 
web2py.gluon.html.SPAN.tag
9496
 
web2py.gluon.html.STYLE.tag
9497
 
web2py.gluon.html.TABLE.tag
9498
 
web2py.gluon.html.TBODY.tag
9499
 
web2py.gluon.html.TD.tag
9500
 
web2py.gluon.html.TEXTAREA.tag
9501
 
web2py.gluon.html.TFOOT.tag
9502
 
web2py.gluon.html.TH.tag
9503
 
web2py.gluon.html.THEAD.tag
9504
 
web2py.gluon.html.TITLE.tag
9505
 
web2py.gluon.html.TR.tag
9506
 
web2py.gluon.html.TT.tag
9507
 
web2py.gluon.html.UL.tag
9508
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-579', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'``\n%s``'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
9509
 
<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-580" class="py-name"><a title="web2py.gluon.html.A.tag
9510
 
web2py.gluon.html.B.tag
9511
 
web2py.gluon.html.BEAUTIFY.tag
9512
 
web2py.gluon.html.BODY.tag
9513
 
web2py.gluon.html.BR.tag
9514
 
web2py.gluon.html.BUTTON.tag
9515
 
web2py.gluon.html.CAT.tag
9516
 
web2py.gluon.html.CENTER.tag
9517
 
web2py.gluon.html.COL.tag
9518
 
web2py.gluon.html.COLGROUP.tag
9519
 
web2py.gluon.html.DIV.tag
9520
 
web2py.gluon.html.EM.tag
9521
 
web2py.gluon.html.EMBED.tag
9522
 
web2py.gluon.html.FIELDSET.tag
9523
 
web2py.gluon.html.FORM.tag
9524
 
web2py.gluon.html.H1.tag
9525
 
web2py.gluon.html.H2.tag
9526
 
web2py.gluon.html.H3.tag
9527
 
web2py.gluon.html.H4.tag
9528
 
web2py.gluon.html.H5.tag
9529
 
web2py.gluon.html.H6.tag
9530
 
web2py.gluon.html.HEAD.tag
9531
 
web2py.gluon.html.HR.tag
9532
 
web2py.gluon.html.HTML.tag
9533
 
web2py.gluon.html.I.tag
9534
 
web2py.gluon.html.IFRAME.tag
9535
 
web2py.gluon.html.IMG.tag
9536
 
web2py.gluon.html.INPUT.tag
9537
 
web2py.gluon.html.LABEL.tag
9538
 
web2py.gluon.html.LEGEND.tag
9539
 
web2py.gluon.html.LI.tag
9540
 
web2py.gluon.html.LINK.tag
9541
 
web2py.gluon.html.MENU.tag
9542
 
web2py.gluon.html.META.tag
9543
 
web2py.gluon.html.OBJECT.tag
9544
 
web2py.gluon.html.OL.tag
9545
 
web2py.gluon.html.OPTGROUP.tag
9546
 
web2py.gluon.html.OPTION.tag
9547
 
web2py.gluon.html.P.tag
9548
 
web2py.gluon.html.PRE.tag
9549
 
web2py.gluon.html.SCRIPT.tag
9550
 
web2py.gluon.html.SELECT.tag
9551
 
web2py.gluon.html.SPAN.tag
9552
 
web2py.gluon.html.STYLE.tag
9553
 
web2py.gluon.html.TABLE.tag
9554
 
web2py.gluon.html.TBODY.tag
9555
 
web2py.gluon.html.TD.tag
9556
 
web2py.gluon.html.TEXTAREA.tag
9557
 
web2py.gluon.html.TFOOT.tag
9558
 
web2py.gluon.html.TH.tag
9559
 
web2py.gluon.html.THEAD.tag
9560
 
web2py.gluon.html.TITLE.tag
9561
 
web2py.gluon.html.TR.tag
9562
 
web2py.gluon.html.TT.tag
9563
 
web2py.gluon.html.UL.tag
9564
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-580', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[[%s %s]]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-581" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-581', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_href'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
9565
 
<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-582" class="py-name"><a title="web2py.gluon.html.A.tag
9566
 
web2py.gluon.html.B.tag
9567
 
web2py.gluon.html.BEAUTIFY.tag
9568
 
web2py.gluon.html.BODY.tag
9569
 
web2py.gluon.html.BR.tag
9570
 
web2py.gluon.html.BUTTON.tag
9571
 
web2py.gluon.html.CAT.tag
9572
 
web2py.gluon.html.CENTER.tag
9573
 
web2py.gluon.html.COL.tag
9574
 
web2py.gluon.html.COLGROUP.tag
9575
 
web2py.gluon.html.DIV.tag
9576
 
web2py.gluon.html.EM.tag
9577
 
web2py.gluon.html.EMBED.tag
9578
 
web2py.gluon.html.FIELDSET.tag
9579
 
web2py.gluon.html.FORM.tag
9580
 
web2py.gluon.html.H1.tag
9581
 
web2py.gluon.html.H2.tag
9582
 
web2py.gluon.html.H3.tag
9583
 
web2py.gluon.html.H4.tag
9584
 
web2py.gluon.html.H5.tag
9585
 
web2py.gluon.html.H6.tag
9586
 
web2py.gluon.html.HEAD.tag
9587
 
web2py.gluon.html.HR.tag
9588
 
web2py.gluon.html.HTML.tag
9589
 
web2py.gluon.html.I.tag
9590
 
web2py.gluon.html.IFRAME.tag
9591
 
web2py.gluon.html.IMG.tag
9592
 
web2py.gluon.html.INPUT.tag
9593
 
web2py.gluon.html.LABEL.tag
9594
 
web2py.gluon.html.LEGEND.tag
9595
 
web2py.gluon.html.LI.tag
9596
 
web2py.gluon.html.LINK.tag
9597
 
web2py.gluon.html.MENU.tag
9598
 
web2py.gluon.html.META.tag
9599
 
web2py.gluon.html.OBJECT.tag
9600
 
web2py.gluon.html.OL.tag
9601
 
web2py.gluon.html.OPTGROUP.tag
9602
 
web2py.gluon.html.OPTION.tag
9603
 
web2py.gluon.html.P.tag
9604
 
web2py.gluon.html.PRE.tag
9605
 
web2py.gluon.html.SCRIPT.tag
9606
 
web2py.gluon.html.SELECT.tag
9607
 
web2py.gluon.html.SPAN.tag
9608
 
web2py.gluon.html.STYLE.tag
9609
 
web2py.gluon.html.TABLE.tag
9610
 
web2py.gluon.html.TBODY.tag
9611
 
web2py.gluon.html.TD.tag
9612
 
web2py.gluon.html.TEXTAREA.tag
9613
 
web2py.gluon.html.TFOOT.tag
9614
 
web2py.gluon.html.TH.tag
9615
 
web2py.gluon.html.THEAD.tag
9616
 
web2py.gluon.html.TITLE.tag
9617
 
web2py.gluon.html.TR.tag
9618
 
web2py.gluon.html.TT.tag
9619
 
web2py.gluon.html.UL.tag
9620
 
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-582', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[[%s %s left]]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-583', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_alt'</tt><tt class="py-op">,</tt><tt class="py-string">'no title'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="web2py.gluon.rocket.Headers.get" class="py-name" href="#" onclick="return doclink('link-584', 'get', 'link-291');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_src'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
9621
 
<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
9622
 
</div><a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line"> </tt>
9623
 
<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line"> </tt>
9624
 
<a name="MARKMIN"></a><div id="MARKMIN-def"><a name="L2203"></a><tt class="py-lineno">2203</tt> <a class="py-toggle" href="#" id="MARKMIN-toggle" onclick="return toggle('MARKMIN');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html">MARKMIN</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9625
 
</div><div id="MARKMIN-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MARKMIN-expanded"><a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
9626
 
<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line"><tt class="py-docstring">    For documentation: http://web2py.com/examples/static/markmin.html</tt> </tt>
9627
 
<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
9628
 
<a name="MARKMIN.__init__"></a><div id="MARKMIN.__init__-def"><a name="L2207"></a><tt class="py-lineno">2207</tt> <a class="py-toggle" href="#" id="MARKMIN.__init__-toggle" onclick="return toggle('MARKMIN.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">extra</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">allowed</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">sep</tt><tt class="py-op">=</tt><tt class="py-string">'p'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9629
 
</div><div id="MARKMIN.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.__init__-expanded"><a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
9630
 
<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-name">extra</tt> </tt>
9631
 
<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed</tt> <tt class="py-op">=</tt> <tt class="py-name">allowed</tt> </tt>
9632
 
<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt> <tt class="py-op">=</tt> <tt class="py-name">sep</tt> </tt>
9633
 
</div><a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line"> </tt>
9634
 
<a name="MARKMIN.xml"></a><div id="MARKMIN.xml-def"><a name="L2213"></a><tt class="py-lineno">2213</tt> <a class="py-toggle" href="#" id="MARKMIN.xml-toggle" onclick="return toggle('MARKMIN.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9635
 
</div><div id="MARKMIN.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.xml-expanded"><a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
9636
 
<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line"><tt class="py-docstring">        calls the gluon.contrib.markmin render function to convert the wiki syntax</tt> </tt>
9637
 
<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
9638
 
<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-585" class="py-name"><a title="web2py.gluon.globals.Response.render
9639
 
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-585', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">extra</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extra</tt><tt class="py-op">,</tt><tt class="py-name">allowed</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed</tt><tt class="py-op">,</tt><tt class="py-name">sep</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> </tt>
9640
 
</div><a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line"> </tt>
9641
 
<a name="MARKMIN.__str__"></a><div id="MARKMIN.__str__-def"><a name="L2219"></a><tt class="py-lineno">2219</tt> <a class="py-toggle" href="#" id="MARKMIN.__str__-toggle" onclick="return toggle('MARKMIN.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9642
 
</div><div id="MARKMIN.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.__str__-expanded"><a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="web2py.gluon.dal.Rows.xml
 
7428
web2py.gluon.tools.TAG" class="py-name" href="#" onclick="return doclink('link-520', 'TAG', 'link-208');">TAG</a></tt><tt class="py-op">[</tt><tt class="py-name">tagname</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
7429
<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt><tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">:</tt> <tt id="link-521" class="py-name"><a title="web2py.gluon.html.A.tag
 
7430
web2py.gluon.html.B.tag
 
7431
web2py.gluon.html.BEAUTIFY.tag
 
7432
web2py.gluon.html.BODY.tag
 
7433
web2py.gluon.html.BR.tag
 
7434
web2py.gluon.html.BUTTON.tag
 
7435
web2py.gluon.html.CAT.tag
 
7436
web2py.gluon.html.CENTER.tag
 
7437
web2py.gluon.html.COL.tag
 
7438
web2py.gluon.html.COLGROUP.tag
 
7439
web2py.gluon.html.DIV.tag
 
7440
web2py.gluon.html.EM.tag
 
7441
web2py.gluon.html.EMBED.tag
 
7442
web2py.gluon.html.FIELDSET.tag
 
7443
web2py.gluon.html.FORM.tag
 
7444
web2py.gluon.html.H1.tag
 
7445
web2py.gluon.html.H2.tag
 
7446
web2py.gluon.html.H3.tag
 
7447
web2py.gluon.html.H4.tag
 
7448
web2py.gluon.html.H5.tag
 
7449
web2py.gluon.html.H6.tag
 
7450
web2py.gluon.html.HEAD.tag
 
7451
web2py.gluon.html.HR.tag
 
7452
web2py.gluon.html.HTML.tag
 
7453
web2py.gluon.html.I.tag
 
7454
web2py.gluon.html.IFRAME.tag
 
7455
web2py.gluon.html.IMG.tag
 
7456
web2py.gluon.html.INPUT.tag
 
7457
web2py.gluon.html.LABEL.tag
 
7458
web2py.gluon.html.LEGEND.tag
 
7459
web2py.gluon.html.LI.tag
 
7460
web2py.gluon.html.LINK.tag
 
7461
web2py.gluon.html.MENU.tag
 
7462
web2py.gluon.html.META.tag
 
7463
web2py.gluon.html.OBJECT.tag
 
7464
web2py.gluon.html.OL.tag
 
7465
web2py.gluon.html.OPTGROUP.tag
 
7466
web2py.gluon.html.OPTION.tag
 
7467
web2py.gluon.html.P.tag
 
7468
web2py.gluon.html.PRE.tag
 
7469
web2py.gluon.html.SCRIPT.tag
 
7470
web2py.gluon.html.SELECT.tag
 
7471
web2py.gluon.html.SPAN.tag
 
7472
web2py.gluon.html.STYLE.tag
 
7473
web2py.gluon.html.TABLE.tag
 
7474
web2py.gluon.html.TBODY.tag
 
7475
web2py.gluon.html.TD.tag
 
7476
web2py.gluon.html.TEXTAREA.tag
 
7477
web2py.gluon.html.TFOOT.tag
 
7478
web2py.gluon.html.TH.tag
 
7479
web2py.gluon.html.THEAD.tag
 
7480
web2py.gluon.html.TITLE.tag
 
7481
web2py.gluon.html.TR.tag
 
7482
web2py.gluon.html.TT.tag
 
7483
web2py.gluon.html.UL.tag
 
7484
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-521', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</tt><tt class="py-string">'_'</tt><tt class="py-op">+</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">value</tt> </tt>
 
7485
<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">        <tt id="link-522" class="py-name"><a title="web2py.gluon.html.A.tag
 
7486
web2py.gluon.html.B.tag
 
7487
web2py.gluon.html.BEAUTIFY.tag
 
7488
web2py.gluon.html.BODY.tag
 
7489
web2py.gluon.html.BR.tag
 
7490
web2py.gluon.html.BUTTON.tag
 
7491
web2py.gluon.html.CAT.tag
 
7492
web2py.gluon.html.CENTER.tag
 
7493
web2py.gluon.html.COL.tag
 
7494
web2py.gluon.html.COLGROUP.tag
 
7495
web2py.gluon.html.DIV.tag
 
7496
web2py.gluon.html.EM.tag
 
7497
web2py.gluon.html.EMBED.tag
 
7498
web2py.gluon.html.FIELDSET.tag
 
7499
web2py.gluon.html.FORM.tag
 
7500
web2py.gluon.html.H1.tag
 
7501
web2py.gluon.html.H2.tag
 
7502
web2py.gluon.html.H3.tag
 
7503
web2py.gluon.html.H4.tag
 
7504
web2py.gluon.html.H5.tag
 
7505
web2py.gluon.html.H6.tag
 
7506
web2py.gluon.html.HEAD.tag
 
7507
web2py.gluon.html.HR.tag
 
7508
web2py.gluon.html.HTML.tag
 
7509
web2py.gluon.html.I.tag
 
7510
web2py.gluon.html.IFRAME.tag
 
7511
web2py.gluon.html.IMG.tag
 
7512
web2py.gluon.html.INPUT.tag
 
7513
web2py.gluon.html.LABEL.tag
 
7514
web2py.gluon.html.LEGEND.tag
 
7515
web2py.gluon.html.LI.tag
 
7516
web2py.gluon.html.LINK.tag
 
7517
web2py.gluon.html.MENU.tag
 
7518
web2py.gluon.html.META.tag
 
7519
web2py.gluon.html.OBJECT.tag
 
7520
web2py.gluon.html.OL.tag
 
7521
web2py.gluon.html.OPTGROUP.tag
 
7522
web2py.gluon.html.OPTION.tag
 
7523
web2py.gluon.html.P.tag
 
7524
web2py.gluon.html.PRE.tag
 
7525
web2py.gluon.html.SCRIPT.tag
 
7526
web2py.gluon.html.SELECT.tag
 
7527
web2py.gluon.html.SPAN.tag
 
7528
web2py.gluon.html.STYLE.tag
 
7529
web2py.gluon.html.TABLE.tag
 
7530
web2py.gluon.html.TBODY.tag
 
7531
web2py.gluon.html.TD.tag
 
7532
web2py.gluon.html.TEXTAREA.tag
 
7533
web2py.gluon.html.TFOOT.tag
 
7534
web2py.gluon.html.TH.tag
 
7535
web2py.gluon.html.THEAD.tag
 
7536
web2py.gluon.html.TITLE.tag
 
7537
web2py.gluon.html.TR.tag
 
7538
web2py.gluon.html.TT.tag
 
7539
web2py.gluon.html.UL.tag
 
7540
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-522', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
 
7541
<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7542
web2py.gluon.template.BlockNode.append
 
7543
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-523', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="web2py.gluon.html.A.tag
 
7544
web2py.gluon.html.B.tag
 
7545
web2py.gluon.html.BEAUTIFY.tag
 
7546
web2py.gluon.html.BODY.tag
 
7547
web2py.gluon.html.BR.tag
 
7548
web2py.gluon.html.BUTTON.tag
 
7549
web2py.gluon.html.CAT.tag
 
7550
web2py.gluon.html.CENTER.tag
 
7551
web2py.gluon.html.COL.tag
 
7552
web2py.gluon.html.COLGROUP.tag
 
7553
web2py.gluon.html.DIV.tag
 
7554
web2py.gluon.html.EM.tag
 
7555
web2py.gluon.html.EMBED.tag
 
7556
web2py.gluon.html.FIELDSET.tag
 
7557
web2py.gluon.html.FORM.tag
 
7558
web2py.gluon.html.H1.tag
 
7559
web2py.gluon.html.H2.tag
 
7560
web2py.gluon.html.H3.tag
 
7561
web2py.gluon.html.H4.tag
 
7562
web2py.gluon.html.H5.tag
 
7563
web2py.gluon.html.H6.tag
 
7564
web2py.gluon.html.HEAD.tag
 
7565
web2py.gluon.html.HR.tag
 
7566
web2py.gluon.html.HTML.tag
 
7567
web2py.gluon.html.I.tag
 
7568
web2py.gluon.html.IFRAME.tag
 
7569
web2py.gluon.html.IMG.tag
 
7570
web2py.gluon.html.INPUT.tag
 
7571
web2py.gluon.html.LABEL.tag
 
7572
web2py.gluon.html.LEGEND.tag
 
7573
web2py.gluon.html.LI.tag
 
7574
web2py.gluon.html.LINK.tag
 
7575
web2py.gluon.html.MENU.tag
 
7576
web2py.gluon.html.META.tag
 
7577
web2py.gluon.html.OBJECT.tag
 
7578
web2py.gluon.html.OL.tag
 
7579
web2py.gluon.html.OPTGROUP.tag
 
7580
web2py.gluon.html.OPTION.tag
 
7581
web2py.gluon.html.P.tag
 
7582
web2py.gluon.html.PRE.tag
 
7583
web2py.gluon.html.SCRIPT.tag
 
7584
web2py.gluon.html.SELECT.tag
 
7585
web2py.gluon.html.SPAN.tag
 
7586
web2py.gluon.html.STYLE.tag
 
7587
web2py.gluon.html.TABLE.tag
 
7588
web2py.gluon.html.TBODY.tag
 
7589
web2py.gluon.html.TD.tag
 
7590
web2py.gluon.html.TEXTAREA.tag
 
7591
web2py.gluon.html.TFOOT.tag
 
7592
web2py.gluon.html.TH.tag
 
7593
web2py.gluon.html.THEAD.tag
 
7594
web2py.gluon.html.TITLE.tag
 
7595
web2py.gluon.html.TR.tag
 
7596
web2py.gluon.html.TT.tag
 
7597
web2py.gluon.html.UL.tag
 
7598
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-524', 'tag', 'link-82');">tag</a></tt><tt class="py-op">)</tt> </tt>
 
7599
<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-525" class="py-name"><a title="web2py.gluon.html.A.tag
 
7600
web2py.gluon.html.B.tag
 
7601
web2py.gluon.html.BEAUTIFY.tag
 
7602
web2py.gluon.html.BODY.tag
 
7603
web2py.gluon.html.BR.tag
 
7604
web2py.gluon.html.BUTTON.tag
 
7605
web2py.gluon.html.CAT.tag
 
7606
web2py.gluon.html.CENTER.tag
 
7607
web2py.gluon.html.COL.tag
 
7608
web2py.gluon.html.COLGROUP.tag
 
7609
web2py.gluon.html.DIV.tag
 
7610
web2py.gluon.html.EM.tag
 
7611
web2py.gluon.html.EMBED.tag
 
7612
web2py.gluon.html.FIELDSET.tag
 
7613
web2py.gluon.html.FORM.tag
 
7614
web2py.gluon.html.H1.tag
 
7615
web2py.gluon.html.H2.tag
 
7616
web2py.gluon.html.H3.tag
 
7617
web2py.gluon.html.H4.tag
 
7618
web2py.gluon.html.H5.tag
 
7619
web2py.gluon.html.H6.tag
 
7620
web2py.gluon.html.HEAD.tag
 
7621
web2py.gluon.html.HR.tag
 
7622
web2py.gluon.html.HTML.tag
 
7623
web2py.gluon.html.I.tag
 
7624
web2py.gluon.html.IFRAME.tag
 
7625
web2py.gluon.html.IMG.tag
 
7626
web2py.gluon.html.INPUT.tag
 
7627
web2py.gluon.html.LABEL.tag
 
7628
web2py.gluon.html.LEGEND.tag
 
7629
web2py.gluon.html.LI.tag
 
7630
web2py.gluon.html.LINK.tag
 
7631
web2py.gluon.html.MENU.tag
 
7632
web2py.gluon.html.META.tag
 
7633
web2py.gluon.html.OBJECT.tag
 
7634
web2py.gluon.html.OL.tag
 
7635
web2py.gluon.html.OPTGROUP.tag
 
7636
web2py.gluon.html.OPTION.tag
 
7637
web2py.gluon.html.P.tag
 
7638
web2py.gluon.html.PRE.tag
 
7639
web2py.gluon.html.SCRIPT.tag
 
7640
web2py.gluon.html.SELECT.tag
 
7641
web2py.gluon.html.SPAN.tag
 
7642
web2py.gluon.html.STYLE.tag
 
7643
web2py.gluon.html.TABLE.tag
 
7644
web2py.gluon.html.TBODY.tag
 
7645
web2py.gluon.html.TD.tag
 
7646
web2py.gluon.html.TEXTAREA.tag
 
7647
web2py.gluon.html.TFOOT.tag
 
7648
web2py.gluon.html.TH.tag
 
7649
web2py.gluon.html.THEAD.tag
 
7650
web2py.gluon.html.TITLE.tag
 
7651
web2py.gluon.html.TR.tag
 
7652
web2py.gluon.html.TT.tag
 
7653
web2py.gluon.html.UL.tag
 
7654
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-525', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="web2py.gluon.html.A.tag
 
7655
web2py.gluon.html.B.tag
 
7656
web2py.gluon.html.BEAUTIFY.tag
 
7657
web2py.gluon.html.BODY.tag
 
7658
web2py.gluon.html.BR.tag
 
7659
web2py.gluon.html.BUTTON.tag
 
7660
web2py.gluon.html.CAT.tag
 
7661
web2py.gluon.html.CENTER.tag
 
7662
web2py.gluon.html.COL.tag
 
7663
web2py.gluon.html.COLGROUP.tag
 
7664
web2py.gluon.html.DIV.tag
 
7665
web2py.gluon.html.EM.tag
 
7666
web2py.gluon.html.EMBED.tag
 
7667
web2py.gluon.html.FIELDSET.tag
 
7668
web2py.gluon.html.FORM.tag
 
7669
web2py.gluon.html.H1.tag
 
7670
web2py.gluon.html.H2.tag
 
7671
web2py.gluon.html.H3.tag
 
7672
web2py.gluon.html.H4.tag
 
7673
web2py.gluon.html.H5.tag
 
7674
web2py.gluon.html.H6.tag
 
7675
web2py.gluon.html.HEAD.tag
 
7676
web2py.gluon.html.HR.tag
 
7677
web2py.gluon.html.HTML.tag
 
7678
web2py.gluon.html.I.tag
 
7679
web2py.gluon.html.IFRAME.tag
 
7680
web2py.gluon.html.IMG.tag
 
7681
web2py.gluon.html.INPUT.tag
 
7682
web2py.gluon.html.LABEL.tag
 
7683
web2py.gluon.html.LEGEND.tag
 
7684
web2py.gluon.html.LI.tag
 
7685
web2py.gluon.html.LINK.tag
 
7686
web2py.gluon.html.MENU.tag
 
7687
web2py.gluon.html.META.tag
 
7688
web2py.gluon.html.OBJECT.tag
 
7689
web2py.gluon.html.OL.tag
 
7690
web2py.gluon.html.OPTGROUP.tag
 
7691
web2py.gluon.html.OPTION.tag
 
7692
web2py.gluon.html.P.tag
 
7693
web2py.gluon.html.PRE.tag
 
7694
web2py.gluon.html.SCRIPT.tag
 
7695
web2py.gluon.html.SELECT.tag
 
7696
web2py.gluon.html.SPAN.tag
 
7697
web2py.gluon.html.STYLE.tag
 
7698
web2py.gluon.html.TABLE.tag
 
7699
web2py.gluon.html.TBODY.tag
 
7700
web2py.gluon.html.TD.tag
 
7701
web2py.gluon.html.TEXTAREA.tag
 
7702
web2py.gluon.html.TFOOT.tag
 
7703
web2py.gluon.html.TH.tag
 
7704
web2py.gluon.html.THEAD.tag
 
7705
web2py.gluon.html.TITLE.tag
 
7706
web2py.gluon.html.TR.tag
 
7707
web2py.gluon.html.TT.tag
 
7708
web2py.gluon.html.UL.tag
 
7709
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-526', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="web2py.gluon.dal.Expression.endswith" class="py-name" href="#" onclick="return doclink('link-527', 'endswith', 'link-31');">endswith</a></tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7710
<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">=</tt><tt id="link-528" class="py-name"><a title="web2py.gluon.html.A.tag
 
7711
web2py.gluon.html.B.tag
 
7712
web2py.gluon.html.BEAUTIFY.tag
 
7713
web2py.gluon.html.BODY.tag
 
7714
web2py.gluon.html.BR.tag
 
7715
web2py.gluon.html.BUTTON.tag
 
7716
web2py.gluon.html.CAT.tag
 
7717
web2py.gluon.html.CENTER.tag
 
7718
web2py.gluon.html.COL.tag
 
7719
web2py.gluon.html.COLGROUP.tag
 
7720
web2py.gluon.html.DIV.tag
 
7721
web2py.gluon.html.EM.tag
 
7722
web2py.gluon.html.EMBED.tag
 
7723
web2py.gluon.html.FIELDSET.tag
 
7724
web2py.gluon.html.FORM.tag
 
7725
web2py.gluon.html.H1.tag
 
7726
web2py.gluon.html.H2.tag
 
7727
web2py.gluon.html.H3.tag
 
7728
web2py.gluon.html.H4.tag
 
7729
web2py.gluon.html.H5.tag
 
7730
web2py.gluon.html.H6.tag
 
7731
web2py.gluon.html.HEAD.tag
 
7732
web2py.gluon.html.HR.tag
 
7733
web2py.gluon.html.HTML.tag
 
7734
web2py.gluon.html.I.tag
 
7735
web2py.gluon.html.IFRAME.tag
 
7736
web2py.gluon.html.IMG.tag
 
7737
web2py.gluon.html.INPUT.tag
 
7738
web2py.gluon.html.LABEL.tag
 
7739
web2py.gluon.html.LEGEND.tag
 
7740
web2py.gluon.html.LI.tag
 
7741
web2py.gluon.html.LINK.tag
 
7742
web2py.gluon.html.MENU.tag
 
7743
web2py.gluon.html.META.tag
 
7744
web2py.gluon.html.OBJECT.tag
 
7745
web2py.gluon.html.OL.tag
 
7746
web2py.gluon.html.OPTGROUP.tag
 
7747
web2py.gluon.html.OPTION.tag
 
7748
web2py.gluon.html.P.tag
 
7749
web2py.gluon.html.PRE.tag
 
7750
web2py.gluon.html.SCRIPT.tag
 
7751
web2py.gluon.html.SELECT.tag
 
7752
web2py.gluon.html.SPAN.tag
 
7753
web2py.gluon.html.STYLE.tag
 
7754
web2py.gluon.html.TABLE.tag
 
7755
web2py.gluon.html.TBODY.tag
 
7756
web2py.gluon.html.TD.tag
 
7757
web2py.gluon.html.TEXTAREA.tag
 
7758
web2py.gluon.html.TFOOT.tag
 
7759
web2py.gluon.html.TH.tag
 
7760
web2py.gluon.html.THEAD.tag
 
7761
web2py.gluon.html.TITLE.tag
 
7762
web2py.gluon.html.TR.tag
 
7763
web2py.gluon.html.TT.tag
 
7764
web2py.gluon.html.UL.tag
 
7765
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-528', 'tag', 'link-82');">tag</a></tt> </tt>
 
7766
<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7767
<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-529', 'last', 'link-515');">last</a></tt> <tt class="py-op">=</tt> <tt id="link-530" class="py-name"><a title="web2py.gluon.html.A.tag
 
7768
web2py.gluon.html.B.tag
 
7769
web2py.gluon.html.BEAUTIFY.tag
 
7770
web2py.gluon.html.BODY.tag
 
7771
web2py.gluon.html.BR.tag
 
7772
web2py.gluon.html.BUTTON.tag
 
7773
web2py.gluon.html.CAT.tag
 
7774
web2py.gluon.html.CENTER.tag
 
7775
web2py.gluon.html.COL.tag
 
7776
web2py.gluon.html.COLGROUP.tag
 
7777
web2py.gluon.html.DIV.tag
 
7778
web2py.gluon.html.EM.tag
 
7779
web2py.gluon.html.EMBED.tag
 
7780
web2py.gluon.html.FIELDSET.tag
 
7781
web2py.gluon.html.FORM.tag
 
7782
web2py.gluon.html.H1.tag
 
7783
web2py.gluon.html.H2.tag
 
7784
web2py.gluon.html.H3.tag
 
7785
web2py.gluon.html.H4.tag
 
7786
web2py.gluon.html.H5.tag
 
7787
web2py.gluon.html.H6.tag
 
7788
web2py.gluon.html.HEAD.tag
 
7789
web2py.gluon.html.HR.tag
 
7790
web2py.gluon.html.HTML.tag
 
7791
web2py.gluon.html.I.tag
 
7792
web2py.gluon.html.IFRAME.tag
 
7793
web2py.gluon.html.IMG.tag
 
7794
web2py.gluon.html.INPUT.tag
 
7795
web2py.gluon.html.LABEL.tag
 
7796
web2py.gluon.html.LEGEND.tag
 
7797
web2py.gluon.html.LI.tag
 
7798
web2py.gluon.html.LINK.tag
 
7799
web2py.gluon.html.MENU.tag
 
7800
web2py.gluon.html.META.tag
 
7801
web2py.gluon.html.OBJECT.tag
 
7802
web2py.gluon.html.OL.tag
 
7803
web2py.gluon.html.OPTGROUP.tag
 
7804
web2py.gluon.html.OPTION.tag
 
7805
web2py.gluon.html.P.tag
 
7806
web2py.gluon.html.PRE.tag
 
7807
web2py.gluon.html.SCRIPT.tag
 
7808
web2py.gluon.html.SELECT.tag
 
7809
web2py.gluon.html.SPAN.tag
 
7810
web2py.gluon.html.STYLE.tag
 
7811
web2py.gluon.html.TABLE.tag
 
7812
web2py.gluon.html.TBODY.tag
 
7813
web2py.gluon.html.TD.tag
 
7814
web2py.gluon.html.TEXTAREA.tag
 
7815
web2py.gluon.html.TFOOT.tag
 
7816
web2py.gluon.html.TH.tag
 
7817
web2py.gluon.html.THEAD.tag
 
7818
web2py.gluon.html.TITLE.tag
 
7819
web2py.gluon.html.TR.tag
 
7820
web2py.gluon.html.TT.tag
 
7821
web2py.gluon.html.UL.tag
 
7822
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-530', 'tag', 'link-82');">tag</a></tt><tt class="py-op">.</tt><tt id="link-531" class="py-name"><a title="web2py.gluon.html.A.tag
 
7823
web2py.gluon.html.B.tag
 
7824
web2py.gluon.html.BEAUTIFY.tag
 
7825
web2py.gluon.html.BODY.tag
 
7826
web2py.gluon.html.BR.tag
 
7827
web2py.gluon.html.BUTTON.tag
 
7828
web2py.gluon.html.CAT.tag
 
7829
web2py.gluon.html.CENTER.tag
 
7830
web2py.gluon.html.COL.tag
 
7831
web2py.gluon.html.COLGROUP.tag
 
7832
web2py.gluon.html.DIV.tag
 
7833
web2py.gluon.html.EM.tag
 
7834
web2py.gluon.html.EMBED.tag
 
7835
web2py.gluon.html.FIELDSET.tag
 
7836
web2py.gluon.html.FORM.tag
 
7837
web2py.gluon.html.H1.tag
 
7838
web2py.gluon.html.H2.tag
 
7839
web2py.gluon.html.H3.tag
 
7840
web2py.gluon.html.H4.tag
 
7841
web2py.gluon.html.H5.tag
 
7842
web2py.gluon.html.H6.tag
 
7843
web2py.gluon.html.HEAD.tag
 
7844
web2py.gluon.html.HR.tag
 
7845
web2py.gluon.html.HTML.tag
 
7846
web2py.gluon.html.I.tag
 
7847
web2py.gluon.html.IFRAME.tag
 
7848
web2py.gluon.html.IMG.tag
 
7849
web2py.gluon.html.INPUT.tag
 
7850
web2py.gluon.html.LABEL.tag
 
7851
web2py.gluon.html.LEGEND.tag
 
7852
web2py.gluon.html.LI.tag
 
7853
web2py.gluon.html.LINK.tag
 
7854
web2py.gluon.html.MENU.tag
 
7855
web2py.gluon.html.META.tag
 
7856
web2py.gluon.html.OBJECT.tag
 
7857
web2py.gluon.html.OL.tag
 
7858
web2py.gluon.html.OPTGROUP.tag
 
7859
web2py.gluon.html.OPTION.tag
 
7860
web2py.gluon.html.P.tag
 
7861
web2py.gluon.html.PRE.tag
 
7862
web2py.gluon.html.SCRIPT.tag
 
7863
web2py.gluon.html.SELECT.tag
 
7864
web2py.gluon.html.SPAN.tag
 
7865
web2py.gluon.html.STYLE.tag
 
7866
web2py.gluon.html.TABLE.tag
 
7867
web2py.gluon.html.TBODY.tag
 
7868
web2py.gluon.html.TD.tag
 
7869
web2py.gluon.html.TEXTAREA.tag
 
7870
web2py.gluon.html.TFOOT.tag
 
7871
web2py.gluon.html.TH.tag
 
7872
web2py.gluon.html.THEAD.tag
 
7873
web2py.gluon.html.TITLE.tag
 
7874
web2py.gluon.html.TR.tag
 
7875
web2py.gluon.html.TT.tag
 
7876
web2py.gluon.html.UL.tag
 
7877
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-531', 'tag', 'link-82');">tag</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
 
7878
</div><a name="web2pyHTMLParser.handle_data"></a><div id="web2pyHTMLParser.handle_data-def"><a name="L2186"></a><tt class="py-lineno">2186</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_data-toggle" onclick="return toggle('web2pyHTMLParser.handle_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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>
 
7879
</div><div id="web2pyHTMLParser.handle_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_data-expanded"><a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
7880
<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7881
web2py.gluon.template.BlockNode.append
 
7882
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-532', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-533', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt><tt class="py-string">'xmlcharref'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7883
<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
7884
<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7885
web2py.gluon.template.BlockNode.append
 
7886
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-534', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-535" class="py-name" targets="Method web2py.gluon.languages.lazyT.decode()=web2py.gluon.languages.lazyT-class.html#decode"><a title="web2py.gluon.languages.lazyT.decode" class="py-name" href="#" onclick="return doclink('link-535', 'decode', 'link-535');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'latin1'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-536', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt><tt class="py-string">'xmlcharref'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7887
</div><a name="web2pyHTMLParser.handle_charref"></a><div id="web2pyHTMLParser.handle_charref-def"><a name="L2191"></a><tt class="py-lineno">2191</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_charref-toggle" onclick="return toggle('web2pyHTMLParser.handle_charref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7888
</div><div id="web2pyHTMLParser.handle_charref-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_charref-expanded"><a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-537" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-537', 'name', 'link-74');">name</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="web2py.gluon.dal.Expression.lower" class="py-name" href="#" onclick="return doclink('link-538', 'lower', 'link-344');">lower</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt> </tt>
 
7889
<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7890
web2py.gluon.template.BlockNode.append
 
7891
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-539', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-540" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-540', 'name', 'link-74');">name</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-541', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7892
<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
7893
<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7894
web2py.gluon.template.BlockNode.append
 
7895
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-542', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-543" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-543', 'name', 'link-74');">name</a></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-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-544', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7896
</div><a name="web2pyHTMLParser.handle_entityref"></a><div id="web2pyHTMLParser.handle_entityref-def"><a name="L2196"></a><tt class="py-lineno">2196</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_entityref-toggle" onclick="return toggle('web2pyHTMLParser.handle_entityref');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7897
</div><div id="web2pyHTMLParser.handle_entityref-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_entityref-expanded"><a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="web2py.gluon.html.DIV.append
 
7898
web2py.gluon.template.BlockNode.append
 
7899
web2py.gluon.template.Content.append" class="py-name" href="#" onclick="return doclink('link-545', 'append', 'link-32');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">unichr</tt><tt class="py-op">(</tt><tt class="py-name">name2codepoint</tt><tt class="py-op">[</tt><tt id="link-546" class="py-name"><a title="web2py.gluon.import_all.name" class="py-name" href="#" onclick="return doclink('link-546', 'name', 'link-74');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="web2py.gluon.languages.lazyT.encode" class="py-name" href="#" onclick="return doclink('link-547', 'encode', 'link-17');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
7900
</div><a name="web2pyHTMLParser.handle_endtag"></a><div id="web2pyHTMLParser.handle_endtag-def"><a name="L2198"></a><tt class="py-lineno">2198</tt> <a class="py-toggle" href="#" id="web2pyHTMLParser.handle_endtag-toggle" onclick="return toggle('web2pyHTMLParser.handle_endtag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.web2pyHTMLParser-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">tagname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7901
</div><div id="web2pyHTMLParser.handle_endtag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="web2pyHTMLParser.handle_endtag-expanded"><a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt class="py-comment"># this deals with unbalanced tags</tt> </tt>
 
7902
<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt><tt class="py-op">==</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="web2py.gluon.dal.Rows.last" class="py-name" href="#" onclick="return doclink('link-548', 'last', 'link-515');">last</a></tt><tt class="py-op">:</tt> </tt>
 
7903
<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
 
7904
<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
 
7905
<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
7906
<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">                <tt class="py-name">parent_tagname</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="web2py.gluon.html.A.tag
 
7907
web2py.gluon.html.B.tag
 
7908
web2py.gluon.html.BEAUTIFY.tag
 
7909
web2py.gluon.html.BODY.tag
 
7910
web2py.gluon.html.BR.tag
 
7911
web2py.gluon.html.BUTTON.tag
 
7912
web2py.gluon.html.CAT.tag
 
7913
web2py.gluon.html.CENTER.tag
 
7914
web2py.gluon.html.COL.tag
 
7915
web2py.gluon.html.COLGROUP.tag
 
7916
web2py.gluon.html.DIV.tag
 
7917
web2py.gluon.html.EM.tag
 
7918
web2py.gluon.html.EMBED.tag
 
7919
web2py.gluon.html.FIELDSET.tag
 
7920
web2py.gluon.html.FORM.tag
 
7921
web2py.gluon.html.H1.tag
 
7922
web2py.gluon.html.H2.tag
 
7923
web2py.gluon.html.H3.tag
 
7924
web2py.gluon.html.H4.tag
 
7925
web2py.gluon.html.H5.tag
 
7926
web2py.gluon.html.H6.tag
 
7927
web2py.gluon.html.HEAD.tag
 
7928
web2py.gluon.html.HR.tag
 
7929
web2py.gluon.html.HTML.tag
 
7930
web2py.gluon.html.I.tag
 
7931
web2py.gluon.html.IFRAME.tag
 
7932
web2py.gluon.html.IMG.tag
 
7933
web2py.gluon.html.INPUT.tag
 
7934
web2py.gluon.html.LABEL.tag
 
7935
web2py.gluon.html.LEGEND.tag
 
7936
web2py.gluon.html.LI.tag
 
7937
web2py.gluon.html.LINK.tag
 
7938
web2py.gluon.html.MENU.tag
 
7939
web2py.gluon.html.META.tag
 
7940
web2py.gluon.html.OBJECT.tag
 
7941
web2py.gluon.html.OL.tag
 
7942
web2py.gluon.html.OPTGROUP.tag
 
7943
web2py.gluon.html.OPTION.tag
 
7944
web2py.gluon.html.P.tag
 
7945
web2py.gluon.html.PRE.tag
 
7946
web2py.gluon.html.SCRIPT.tag
 
7947
web2py.gluon.html.SELECT.tag
 
7948
web2py.gluon.html.SPAN.tag
 
7949
web2py.gluon.html.STYLE.tag
 
7950
web2py.gluon.html.TABLE.tag
 
7951
web2py.gluon.html.TBODY.tag
 
7952
web2py.gluon.html.TD.tag
 
7953
web2py.gluon.html.TEXTAREA.tag
 
7954
web2py.gluon.html.TFOOT.tag
 
7955
web2py.gluon.html.TH.tag
 
7956
web2py.gluon.html.THEAD.tag
 
7957
web2py.gluon.html.TITLE.tag
 
7958
web2py.gluon.html.TR.tag
 
7959
web2py.gluon.html.TT.tag
 
7960
web2py.gluon.html.UL.tag
 
7961
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-549', 'tag', 'link-82');">tag</a></tt> </tt>
 
7962
<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
 
7963
<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
7964
<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">,</tt> <tt class="py-string">"unable to balance tag %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">tagname</tt> </tt>
 
7965
<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">parent_tagname</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-550" class="py-name"><a title="web2py.gluon.dal.Expression.len" class="py-name" href="#" onclick="return doclink('link-550', 'len', 'link-75');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">tagname</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-name">tagname</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
 
7966
</div></div><a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line"> </tt>
 
7967
<a name="markdown_serializer"></a><div id="markdown_serializer-def"><a name="L2210"></a><tt class="py-lineno">2210</tt> <a class="py-toggle" href="#" id="markdown_serializer-toggle" onclick="return toggle('markdown_serializer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#markdown_serializer">markdown_serializer</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">attr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
7968
</div><div id="markdown_serializer-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="markdown_serializer-expanded"><a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">    <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">attr</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
7969
<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-551" class="py-name"><a title="web2py.gluon.html.A.tag
 
7970
web2py.gluon.html.B.tag
 
7971
web2py.gluon.html.BEAUTIFY.tag
 
7972
web2py.gluon.html.BODY.tag
 
7973
web2py.gluon.html.BR.tag
 
7974
web2py.gluon.html.BUTTON.tag
 
7975
web2py.gluon.html.CAT.tag
 
7976
web2py.gluon.html.CENTER.tag
 
7977
web2py.gluon.html.COL.tag
 
7978
web2py.gluon.html.COLGROUP.tag
 
7979
web2py.gluon.html.DIV.tag
 
7980
web2py.gluon.html.EM.tag
 
7981
web2py.gluon.html.EMBED.tag
 
7982
web2py.gluon.html.FIELDSET.tag
 
7983
web2py.gluon.html.FORM.tag
 
7984
web2py.gluon.html.H1.tag
 
7985
web2py.gluon.html.H2.tag
 
7986
web2py.gluon.html.H3.tag
 
7987
web2py.gluon.html.H4.tag
 
7988
web2py.gluon.html.H5.tag
 
7989
web2py.gluon.html.H6.tag
 
7990
web2py.gluon.html.HEAD.tag
 
7991
web2py.gluon.html.HR.tag
 
7992
web2py.gluon.html.HTML.tag
 
7993
web2py.gluon.html.I.tag
 
7994
web2py.gluon.html.IFRAME.tag
 
7995
web2py.gluon.html.IMG.tag
 
7996
web2py.gluon.html.INPUT.tag
 
7997
web2py.gluon.html.LABEL.tag
 
7998
web2py.gluon.html.LEGEND.tag
 
7999
web2py.gluon.html.LI.tag
 
8000
web2py.gluon.html.LINK.tag
 
8001
web2py.gluon.html.MENU.tag
 
8002
web2py.gluon.html.META.tag
 
8003
web2py.gluon.html.OBJECT.tag
 
8004
web2py.gluon.html.OL.tag
 
8005
web2py.gluon.html.OPTGROUP.tag
 
8006
web2py.gluon.html.OPTION.tag
 
8007
web2py.gluon.html.P.tag
 
8008
web2py.gluon.html.PRE.tag
 
8009
web2py.gluon.html.SCRIPT.tag
 
8010
web2py.gluon.html.SELECT.tag
 
8011
web2py.gluon.html.SPAN.tag
 
8012
web2py.gluon.html.STYLE.tag
 
8013
web2py.gluon.html.TABLE.tag
 
8014
web2py.gluon.html.TBODY.tag
 
8015
web2py.gluon.html.TD.tag
 
8016
web2py.gluon.html.TEXTAREA.tag
 
8017
web2py.gluon.html.TFOOT.tag
 
8018
web2py.gluon.html.TH.tag
 
8019
web2py.gluon.html.THEAD.tag
 
8020
web2py.gluon.html.TITLE.tag
 
8021
web2py.gluon.html.TR.tag
 
8022
web2py.gluon.html.TT.tag
 
8023
web2py.gluon.html.UL.tag
 
8024
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-551', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">'\s+'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
 
8025
<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-552" class="py-name"><a title="web2py.gluon.html.A.tag
 
8026
web2py.gluon.html.B.tag
 
8027
web2py.gluon.html.BEAUTIFY.tag
 
8028
web2py.gluon.html.BODY.tag
 
8029
web2py.gluon.html.BR.tag
 
8030
web2py.gluon.html.BUTTON.tag
 
8031
web2py.gluon.html.CAT.tag
 
8032
web2py.gluon.html.CENTER.tag
 
8033
web2py.gluon.html.COL.tag
 
8034
web2py.gluon.html.COLGROUP.tag
 
8035
web2py.gluon.html.DIV.tag
 
8036
web2py.gluon.html.EM.tag
 
8037
web2py.gluon.html.EMBED.tag
 
8038
web2py.gluon.html.FIELDSET.tag
 
8039
web2py.gluon.html.FORM.tag
 
8040
web2py.gluon.html.H1.tag
 
8041
web2py.gluon.html.H2.tag
 
8042
web2py.gluon.html.H3.tag
 
8043
web2py.gluon.html.H4.tag
 
8044
web2py.gluon.html.H5.tag
 
8045
web2py.gluon.html.H6.tag
 
8046
web2py.gluon.html.HEAD.tag
 
8047
web2py.gluon.html.HR.tag
 
8048
web2py.gluon.html.HTML.tag
 
8049
web2py.gluon.html.I.tag
 
8050
web2py.gluon.html.IFRAME.tag
 
8051
web2py.gluon.html.IMG.tag
 
8052
web2py.gluon.html.INPUT.tag
 
8053
web2py.gluon.html.LABEL.tag
 
8054
web2py.gluon.html.LEGEND.tag
 
8055
web2py.gluon.html.LI.tag
 
8056
web2py.gluon.html.LINK.tag
 
8057
web2py.gluon.html.MENU.tag
 
8058
web2py.gluon.html.META.tag
 
8059
web2py.gluon.html.OBJECT.tag
 
8060
web2py.gluon.html.OL.tag
 
8061
web2py.gluon.html.OPTGROUP.tag
 
8062
web2py.gluon.html.OPTION.tag
 
8063
web2py.gluon.html.P.tag
 
8064
web2py.gluon.html.PRE.tag
 
8065
web2py.gluon.html.SCRIPT.tag
 
8066
web2py.gluon.html.SELECT.tag
 
8067
web2py.gluon.html.SPAN.tag
 
8068
web2py.gluon.html.STYLE.tag
 
8069
web2py.gluon.html.TABLE.tag
 
8070
web2py.gluon.html.TBODY.tag
 
8071
web2py.gluon.html.TD.tag
 
8072
web2py.gluon.html.TEXTAREA.tag
 
8073
web2py.gluon.html.TFOOT.tag
 
8074
web2py.gluon.html.TH.tag
 
8075
web2py.gluon.html.THEAD.tag
 
8076
web2py.gluon.html.TITLE.tag
 
8077
web2py.gluon.html.TR.tag
 
8078
web2py.gluon.html.TT.tag
 
8079
web2py.gluon.html.UL.tag
 
8080
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-552', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'br'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n\n'</tt> </tt>
 
8081
<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-553" class="py-name"><a title="web2py.gluon.html.A.tag
 
8082
web2py.gluon.html.B.tag
 
8083
web2py.gluon.html.BEAUTIFY.tag
 
8084
web2py.gluon.html.BODY.tag
 
8085
web2py.gluon.html.BR.tag
 
8086
web2py.gluon.html.BUTTON.tag
 
8087
web2py.gluon.html.CAT.tag
 
8088
web2py.gluon.html.CENTER.tag
 
8089
web2py.gluon.html.COL.tag
 
8090
web2py.gluon.html.COLGROUP.tag
 
8091
web2py.gluon.html.DIV.tag
 
8092
web2py.gluon.html.EM.tag
 
8093
web2py.gluon.html.EMBED.tag
 
8094
web2py.gluon.html.FIELDSET.tag
 
8095
web2py.gluon.html.FORM.tag
 
8096
web2py.gluon.html.H1.tag
 
8097
web2py.gluon.html.H2.tag
 
8098
web2py.gluon.html.H3.tag
 
8099
web2py.gluon.html.H4.tag
 
8100
web2py.gluon.html.H5.tag
 
8101
web2py.gluon.html.H6.tag
 
8102
web2py.gluon.html.HEAD.tag
 
8103
web2py.gluon.html.HR.tag
 
8104
web2py.gluon.html.HTML.tag
 
8105
web2py.gluon.html.I.tag
 
8106
web2py.gluon.html.IFRAME.tag
 
8107
web2py.gluon.html.IMG.tag
 
8108
web2py.gluon.html.INPUT.tag
 
8109
web2py.gluon.html.LABEL.tag
 
8110
web2py.gluon.html.LEGEND.tag
 
8111
web2py.gluon.html.LI.tag
 
8112
web2py.gluon.html.LINK.tag
 
8113
web2py.gluon.html.MENU.tag
 
8114
web2py.gluon.html.META.tag
 
8115
web2py.gluon.html.OBJECT.tag
 
8116
web2py.gluon.html.OL.tag
 
8117
web2py.gluon.html.OPTGROUP.tag
 
8118
web2py.gluon.html.OPTION.tag
 
8119
web2py.gluon.html.P.tag
 
8120
web2py.gluon.html.PRE.tag
 
8121
web2py.gluon.html.SCRIPT.tag
 
8122
web2py.gluon.html.SELECT.tag
 
8123
web2py.gluon.html.SPAN.tag
 
8124
web2py.gluon.html.STYLE.tag
 
8125
web2py.gluon.html.TABLE.tag
 
8126
web2py.gluon.html.TBODY.tag
 
8127
web2py.gluon.html.TD.tag
 
8128
web2py.gluon.html.TEXTAREA.tag
 
8129
web2py.gluon.html.TFOOT.tag
 
8130
web2py.gluon.html.TH.tag
 
8131
web2py.gluon.html.THEAD.tag
 
8132
web2py.gluon.html.TITLE.tag
 
8133
web2py.gluon.html.TR.tag
 
8134
web2py.gluon.html.TT.tag
 
8135
web2py.gluon.html.UL.tag
 
8136
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-553', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h1'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8137
<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-554" class="py-name"><a title="web2py.gluon.html.A.tag
 
8138
web2py.gluon.html.B.tag
 
8139
web2py.gluon.html.BEAUTIFY.tag
 
8140
web2py.gluon.html.BODY.tag
 
8141
web2py.gluon.html.BR.tag
 
8142
web2py.gluon.html.BUTTON.tag
 
8143
web2py.gluon.html.CAT.tag
 
8144
web2py.gluon.html.CENTER.tag
 
8145
web2py.gluon.html.COL.tag
 
8146
web2py.gluon.html.COLGROUP.tag
 
8147
web2py.gluon.html.DIV.tag
 
8148
web2py.gluon.html.EM.tag
 
8149
web2py.gluon.html.EMBED.tag
 
8150
web2py.gluon.html.FIELDSET.tag
 
8151
web2py.gluon.html.FORM.tag
 
8152
web2py.gluon.html.H1.tag
 
8153
web2py.gluon.html.H2.tag
 
8154
web2py.gluon.html.H3.tag
 
8155
web2py.gluon.html.H4.tag
 
8156
web2py.gluon.html.H5.tag
 
8157
web2py.gluon.html.H6.tag
 
8158
web2py.gluon.html.HEAD.tag
 
8159
web2py.gluon.html.HR.tag
 
8160
web2py.gluon.html.HTML.tag
 
8161
web2py.gluon.html.I.tag
 
8162
web2py.gluon.html.IFRAME.tag
 
8163
web2py.gluon.html.IMG.tag
 
8164
web2py.gluon.html.INPUT.tag
 
8165
web2py.gluon.html.LABEL.tag
 
8166
web2py.gluon.html.LEGEND.tag
 
8167
web2py.gluon.html.LI.tag
 
8168
web2py.gluon.html.LINK.tag
 
8169
web2py.gluon.html.MENU.tag
 
8170
web2py.gluon.html.META.tag
 
8171
web2py.gluon.html.OBJECT.tag
 
8172
web2py.gluon.html.OL.tag
 
8173
web2py.gluon.html.OPTGROUP.tag
 
8174
web2py.gluon.html.OPTION.tag
 
8175
web2py.gluon.html.P.tag
 
8176
web2py.gluon.html.PRE.tag
 
8177
web2py.gluon.html.SCRIPT.tag
 
8178
web2py.gluon.html.SELECT.tag
 
8179
web2py.gluon.html.SPAN.tag
 
8180
web2py.gluon.html.STYLE.tag
 
8181
web2py.gluon.html.TABLE.tag
 
8182
web2py.gluon.html.TBODY.tag
 
8183
web2py.gluon.html.TD.tag
 
8184
web2py.gluon.html.TEXTAREA.tag
 
8185
web2py.gluon.html.TFOOT.tag
 
8186
web2py.gluon.html.TH.tag
 
8187
web2py.gluon.html.THEAD.tag
 
8188
web2py.gluon.html.TITLE.tag
 
8189
web2py.gluon.html.TR.tag
 
8190
web2py.gluon.html.TT.tag
 
8191
web2py.gluon.html.UL.tag
 
8192
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-554', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h2'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">2</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8193
<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-555" class="py-name"><a title="web2py.gluon.html.A.tag
 
8194
web2py.gluon.html.B.tag
 
8195
web2py.gluon.html.BEAUTIFY.tag
 
8196
web2py.gluon.html.BODY.tag
 
8197
web2py.gluon.html.BR.tag
 
8198
web2py.gluon.html.BUTTON.tag
 
8199
web2py.gluon.html.CAT.tag
 
8200
web2py.gluon.html.CENTER.tag
 
8201
web2py.gluon.html.COL.tag
 
8202
web2py.gluon.html.COLGROUP.tag
 
8203
web2py.gluon.html.DIV.tag
 
8204
web2py.gluon.html.EM.tag
 
8205
web2py.gluon.html.EMBED.tag
 
8206
web2py.gluon.html.FIELDSET.tag
 
8207
web2py.gluon.html.FORM.tag
 
8208
web2py.gluon.html.H1.tag
 
8209
web2py.gluon.html.H2.tag
 
8210
web2py.gluon.html.H3.tag
 
8211
web2py.gluon.html.H4.tag
 
8212
web2py.gluon.html.H5.tag
 
8213
web2py.gluon.html.H6.tag
 
8214
web2py.gluon.html.HEAD.tag
 
8215
web2py.gluon.html.HR.tag
 
8216
web2py.gluon.html.HTML.tag
 
8217
web2py.gluon.html.I.tag
 
8218
web2py.gluon.html.IFRAME.tag
 
8219
web2py.gluon.html.IMG.tag
 
8220
web2py.gluon.html.INPUT.tag
 
8221
web2py.gluon.html.LABEL.tag
 
8222
web2py.gluon.html.LEGEND.tag
 
8223
web2py.gluon.html.LI.tag
 
8224
web2py.gluon.html.LINK.tag
 
8225
web2py.gluon.html.MENU.tag
 
8226
web2py.gluon.html.META.tag
 
8227
web2py.gluon.html.OBJECT.tag
 
8228
web2py.gluon.html.OL.tag
 
8229
web2py.gluon.html.OPTGROUP.tag
 
8230
web2py.gluon.html.OPTION.tag
 
8231
web2py.gluon.html.P.tag
 
8232
web2py.gluon.html.PRE.tag
 
8233
web2py.gluon.html.SCRIPT.tag
 
8234
web2py.gluon.html.SELECT.tag
 
8235
web2py.gluon.html.SPAN.tag
 
8236
web2py.gluon.html.STYLE.tag
 
8237
web2py.gluon.html.TABLE.tag
 
8238
web2py.gluon.html.TBODY.tag
 
8239
web2py.gluon.html.TD.tag
 
8240
web2py.gluon.html.TEXTAREA.tag
 
8241
web2py.gluon.html.TFOOT.tag
 
8242
web2py.gluon.html.TH.tag
 
8243
web2py.gluon.html.THEAD.tag
 
8244
web2py.gluon.html.TITLE.tag
 
8245
web2py.gluon.html.TR.tag
 
8246
web2py.gluon.html.TT.tag
 
8247
web2py.gluon.html.UL.tag
 
8248
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-555', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h3'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8249
<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-556" class="py-name"><a title="web2py.gluon.html.A.tag
 
8250
web2py.gluon.html.B.tag
 
8251
web2py.gluon.html.BEAUTIFY.tag
 
8252
web2py.gluon.html.BODY.tag
 
8253
web2py.gluon.html.BR.tag
 
8254
web2py.gluon.html.BUTTON.tag
 
8255
web2py.gluon.html.CAT.tag
 
8256
web2py.gluon.html.CENTER.tag
 
8257
web2py.gluon.html.COL.tag
 
8258
web2py.gluon.html.COLGROUP.tag
 
8259
web2py.gluon.html.DIV.tag
 
8260
web2py.gluon.html.EM.tag
 
8261
web2py.gluon.html.EMBED.tag
 
8262
web2py.gluon.html.FIELDSET.tag
 
8263
web2py.gluon.html.FORM.tag
 
8264
web2py.gluon.html.H1.tag
 
8265
web2py.gluon.html.H2.tag
 
8266
web2py.gluon.html.H3.tag
 
8267
web2py.gluon.html.H4.tag
 
8268
web2py.gluon.html.H5.tag
 
8269
web2py.gluon.html.H6.tag
 
8270
web2py.gluon.html.HEAD.tag
 
8271
web2py.gluon.html.HR.tag
 
8272
web2py.gluon.html.HTML.tag
 
8273
web2py.gluon.html.I.tag
 
8274
web2py.gluon.html.IFRAME.tag
 
8275
web2py.gluon.html.IMG.tag
 
8276
web2py.gluon.html.INPUT.tag
 
8277
web2py.gluon.html.LABEL.tag
 
8278
web2py.gluon.html.LEGEND.tag
 
8279
web2py.gluon.html.LI.tag
 
8280
web2py.gluon.html.LINK.tag
 
8281
web2py.gluon.html.MENU.tag
 
8282
web2py.gluon.html.META.tag
 
8283
web2py.gluon.html.OBJECT.tag
 
8284
web2py.gluon.html.OL.tag
 
8285
web2py.gluon.html.OPTGROUP.tag
 
8286
web2py.gluon.html.OPTION.tag
 
8287
web2py.gluon.html.P.tag
 
8288
web2py.gluon.html.PRE.tag
 
8289
web2py.gluon.html.SCRIPT.tag
 
8290
web2py.gluon.html.SELECT.tag
 
8291
web2py.gluon.html.SPAN.tag
 
8292
web2py.gluon.html.STYLE.tag
 
8293
web2py.gluon.html.TABLE.tag
 
8294
web2py.gluon.html.TBODY.tag
 
8295
web2py.gluon.html.TD.tag
 
8296
web2py.gluon.html.TEXTAREA.tag
 
8297
web2py.gluon.html.TFOOT.tag
 
8298
web2py.gluon.html.TH.tag
 
8299
web2py.gluon.html.THEAD.tag
 
8300
web2py.gluon.html.TITLE.tag
 
8301
web2py.gluon.html.TR.tag
 
8302
web2py.gluon.html.TT.tag
 
8303
web2py.gluon.html.UL.tag
 
8304
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-556', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h4'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">4</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8305
<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-557" class="py-name"><a title="web2py.gluon.html.A.tag
 
8306
web2py.gluon.html.B.tag
 
8307
web2py.gluon.html.BEAUTIFY.tag
 
8308
web2py.gluon.html.BODY.tag
 
8309
web2py.gluon.html.BR.tag
 
8310
web2py.gluon.html.BUTTON.tag
 
8311
web2py.gluon.html.CAT.tag
 
8312
web2py.gluon.html.CENTER.tag
 
8313
web2py.gluon.html.COL.tag
 
8314
web2py.gluon.html.COLGROUP.tag
 
8315
web2py.gluon.html.DIV.tag
 
8316
web2py.gluon.html.EM.tag
 
8317
web2py.gluon.html.EMBED.tag
 
8318
web2py.gluon.html.FIELDSET.tag
 
8319
web2py.gluon.html.FORM.tag
 
8320
web2py.gluon.html.H1.tag
 
8321
web2py.gluon.html.H2.tag
 
8322
web2py.gluon.html.H3.tag
 
8323
web2py.gluon.html.H4.tag
 
8324
web2py.gluon.html.H5.tag
 
8325
web2py.gluon.html.H6.tag
 
8326
web2py.gluon.html.HEAD.tag
 
8327
web2py.gluon.html.HR.tag
 
8328
web2py.gluon.html.HTML.tag
 
8329
web2py.gluon.html.I.tag
 
8330
web2py.gluon.html.IFRAME.tag
 
8331
web2py.gluon.html.IMG.tag
 
8332
web2py.gluon.html.INPUT.tag
 
8333
web2py.gluon.html.LABEL.tag
 
8334
web2py.gluon.html.LEGEND.tag
 
8335
web2py.gluon.html.LI.tag
 
8336
web2py.gluon.html.LINK.tag
 
8337
web2py.gluon.html.MENU.tag
 
8338
web2py.gluon.html.META.tag
 
8339
web2py.gluon.html.OBJECT.tag
 
8340
web2py.gluon.html.OL.tag
 
8341
web2py.gluon.html.OPTGROUP.tag
 
8342
web2py.gluon.html.OPTION.tag
 
8343
web2py.gluon.html.P.tag
 
8344
web2py.gluon.html.PRE.tag
 
8345
web2py.gluon.html.SCRIPT.tag
 
8346
web2py.gluon.html.SELECT.tag
 
8347
web2py.gluon.html.SPAN.tag
 
8348
web2py.gluon.html.STYLE.tag
 
8349
web2py.gluon.html.TABLE.tag
 
8350
web2py.gluon.html.TBODY.tag
 
8351
web2py.gluon.html.TD.tag
 
8352
web2py.gluon.html.TEXTAREA.tag
 
8353
web2py.gluon.html.TFOOT.tag
 
8354
web2py.gluon.html.TH.tag
 
8355
web2py.gluon.html.THEAD.tag
 
8356
web2py.gluon.html.TITLE.tag
 
8357
web2py.gluon.html.TR.tag
 
8358
web2py.gluon.html.TT.tag
 
8359
web2py.gluon.html.UL.tag
 
8360
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-557', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8361
<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-558" class="py-name"><a title="web2py.gluon.html.A.tag
 
8362
web2py.gluon.html.B.tag
 
8363
web2py.gluon.html.BEAUTIFY.tag
 
8364
web2py.gluon.html.BODY.tag
 
8365
web2py.gluon.html.BR.tag
 
8366
web2py.gluon.html.BUTTON.tag
 
8367
web2py.gluon.html.CAT.tag
 
8368
web2py.gluon.html.CENTER.tag
 
8369
web2py.gluon.html.COL.tag
 
8370
web2py.gluon.html.COLGROUP.tag
 
8371
web2py.gluon.html.DIV.tag
 
8372
web2py.gluon.html.EM.tag
 
8373
web2py.gluon.html.EMBED.tag
 
8374
web2py.gluon.html.FIELDSET.tag
 
8375
web2py.gluon.html.FORM.tag
 
8376
web2py.gluon.html.H1.tag
 
8377
web2py.gluon.html.H2.tag
 
8378
web2py.gluon.html.H3.tag
 
8379
web2py.gluon.html.H4.tag
 
8380
web2py.gluon.html.H5.tag
 
8381
web2py.gluon.html.H6.tag
 
8382
web2py.gluon.html.HEAD.tag
 
8383
web2py.gluon.html.HR.tag
 
8384
web2py.gluon.html.HTML.tag
 
8385
web2py.gluon.html.I.tag
 
8386
web2py.gluon.html.IFRAME.tag
 
8387
web2py.gluon.html.IMG.tag
 
8388
web2py.gluon.html.INPUT.tag
 
8389
web2py.gluon.html.LABEL.tag
 
8390
web2py.gluon.html.LEGEND.tag
 
8391
web2py.gluon.html.LI.tag
 
8392
web2py.gluon.html.LINK.tag
 
8393
web2py.gluon.html.MENU.tag
 
8394
web2py.gluon.html.META.tag
 
8395
web2py.gluon.html.OBJECT.tag
 
8396
web2py.gluon.html.OL.tag
 
8397
web2py.gluon.html.OPTGROUP.tag
 
8398
web2py.gluon.html.OPTION.tag
 
8399
web2py.gluon.html.P.tag
 
8400
web2py.gluon.html.PRE.tag
 
8401
web2py.gluon.html.SCRIPT.tag
 
8402
web2py.gluon.html.SELECT.tag
 
8403
web2py.gluon.html.SPAN.tag
 
8404
web2py.gluon.html.STYLE.tag
 
8405
web2py.gluon.html.TABLE.tag
 
8406
web2py.gluon.html.TBODY.tag
 
8407
web2py.gluon.html.TD.tag
 
8408
web2py.gluon.html.TEXTAREA.tag
 
8409
web2py.gluon.html.TFOOT.tag
 
8410
web2py.gluon.html.TH.tag
 
8411
web2py.gluon.html.THEAD.tag
 
8412
web2py.gluon.html.TITLE.tag
 
8413
web2py.gluon.html.TR.tag
 
8414
web2py.gluon.html.TT.tag
 
8415
web2py.gluon.html.UL.tag
 
8416
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-558', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'b'</tt> <tt class="py-keyword">or</tt> <tt id="link-559" class="py-name"><a title="web2py.gluon.html.A.tag
 
8417
web2py.gluon.html.B.tag
 
8418
web2py.gluon.html.BEAUTIFY.tag
 
8419
web2py.gluon.html.BODY.tag
 
8420
web2py.gluon.html.BR.tag
 
8421
web2py.gluon.html.BUTTON.tag
 
8422
web2py.gluon.html.CAT.tag
 
8423
web2py.gluon.html.CENTER.tag
 
8424
web2py.gluon.html.COL.tag
 
8425
web2py.gluon.html.COLGROUP.tag
 
8426
web2py.gluon.html.DIV.tag
 
8427
web2py.gluon.html.EM.tag
 
8428
web2py.gluon.html.EMBED.tag
 
8429
web2py.gluon.html.FIELDSET.tag
 
8430
web2py.gluon.html.FORM.tag
 
8431
web2py.gluon.html.H1.tag
 
8432
web2py.gluon.html.H2.tag
 
8433
web2py.gluon.html.H3.tag
 
8434
web2py.gluon.html.H4.tag
 
8435
web2py.gluon.html.H5.tag
 
8436
web2py.gluon.html.H6.tag
 
8437
web2py.gluon.html.HEAD.tag
 
8438
web2py.gluon.html.HR.tag
 
8439
web2py.gluon.html.HTML.tag
 
8440
web2py.gluon.html.I.tag
 
8441
web2py.gluon.html.IFRAME.tag
 
8442
web2py.gluon.html.IMG.tag
 
8443
web2py.gluon.html.INPUT.tag
 
8444
web2py.gluon.html.LABEL.tag
 
8445
web2py.gluon.html.LEGEND.tag
 
8446
web2py.gluon.html.LI.tag
 
8447
web2py.gluon.html.LINK.tag
 
8448
web2py.gluon.html.MENU.tag
 
8449
web2py.gluon.html.META.tag
 
8450
web2py.gluon.html.OBJECT.tag
 
8451
web2py.gluon.html.OL.tag
 
8452
web2py.gluon.html.OPTGROUP.tag
 
8453
web2py.gluon.html.OPTION.tag
 
8454
web2py.gluon.html.P.tag
 
8455
web2py.gluon.html.PRE.tag
 
8456
web2py.gluon.html.SCRIPT.tag
 
8457
web2py.gluon.html.SELECT.tag
 
8458
web2py.gluon.html.SPAN.tag
 
8459
web2py.gluon.html.STYLE.tag
 
8460
web2py.gluon.html.TABLE.tag
 
8461
web2py.gluon.html.TBODY.tag
 
8462
web2py.gluon.html.TD.tag
 
8463
web2py.gluon.html.TEXTAREA.tag
 
8464
web2py.gluon.html.TFOOT.tag
 
8465
web2py.gluon.html.TH.tag
 
8466
web2py.gluon.html.THEAD.tag
 
8467
web2py.gluon.html.TITLE.tag
 
8468
web2py.gluon.html.TR.tag
 
8469
web2py.gluon.html.TT.tag
 
8470
web2py.gluon.html.UL.tag
 
8471
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-559', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'strong'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'**%s**'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
8472
<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-560" class="py-name"><a title="web2py.gluon.html.A.tag
 
8473
web2py.gluon.html.B.tag
 
8474
web2py.gluon.html.BEAUTIFY.tag
 
8475
web2py.gluon.html.BODY.tag
 
8476
web2py.gluon.html.BR.tag
 
8477
web2py.gluon.html.BUTTON.tag
 
8478
web2py.gluon.html.CAT.tag
 
8479
web2py.gluon.html.CENTER.tag
 
8480
web2py.gluon.html.COL.tag
 
8481
web2py.gluon.html.COLGROUP.tag
 
8482
web2py.gluon.html.DIV.tag
 
8483
web2py.gluon.html.EM.tag
 
8484
web2py.gluon.html.EMBED.tag
 
8485
web2py.gluon.html.FIELDSET.tag
 
8486
web2py.gluon.html.FORM.tag
 
8487
web2py.gluon.html.H1.tag
 
8488
web2py.gluon.html.H2.tag
 
8489
web2py.gluon.html.H3.tag
 
8490
web2py.gluon.html.H4.tag
 
8491
web2py.gluon.html.H5.tag
 
8492
web2py.gluon.html.H6.tag
 
8493
web2py.gluon.html.HEAD.tag
 
8494
web2py.gluon.html.HR.tag
 
8495
web2py.gluon.html.HTML.tag
 
8496
web2py.gluon.html.I.tag
 
8497
web2py.gluon.html.IFRAME.tag
 
8498
web2py.gluon.html.IMG.tag
 
8499
web2py.gluon.html.INPUT.tag
 
8500
web2py.gluon.html.LABEL.tag
 
8501
web2py.gluon.html.LEGEND.tag
 
8502
web2py.gluon.html.LI.tag
 
8503
web2py.gluon.html.LINK.tag
 
8504
web2py.gluon.html.MENU.tag
 
8505
web2py.gluon.html.META.tag
 
8506
web2py.gluon.html.OBJECT.tag
 
8507
web2py.gluon.html.OL.tag
 
8508
web2py.gluon.html.OPTGROUP.tag
 
8509
web2py.gluon.html.OPTION.tag
 
8510
web2py.gluon.html.P.tag
 
8511
web2py.gluon.html.PRE.tag
 
8512
web2py.gluon.html.SCRIPT.tag
 
8513
web2py.gluon.html.SELECT.tag
 
8514
web2py.gluon.html.SPAN.tag
 
8515
web2py.gluon.html.STYLE.tag
 
8516
web2py.gluon.html.TABLE.tag
 
8517
web2py.gluon.html.TBODY.tag
 
8518
web2py.gluon.html.TD.tag
 
8519
web2py.gluon.html.TEXTAREA.tag
 
8520
web2py.gluon.html.TFOOT.tag
 
8521
web2py.gluon.html.TH.tag
 
8522
web2py.gluon.html.THEAD.tag
 
8523
web2py.gluon.html.TITLE.tag
 
8524
web2py.gluon.html.TR.tag
 
8525
web2py.gluon.html.TT.tag
 
8526
web2py.gluon.html.UL.tag
 
8527
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-560', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'em'</tt> <tt class="py-keyword">or</tt> <tt id="link-561" class="py-name"><a title="web2py.gluon.html.A.tag
 
8528
web2py.gluon.html.B.tag
 
8529
web2py.gluon.html.BEAUTIFY.tag
 
8530
web2py.gluon.html.BODY.tag
 
8531
web2py.gluon.html.BR.tag
 
8532
web2py.gluon.html.BUTTON.tag
 
8533
web2py.gluon.html.CAT.tag
 
8534
web2py.gluon.html.CENTER.tag
 
8535
web2py.gluon.html.COL.tag
 
8536
web2py.gluon.html.COLGROUP.tag
 
8537
web2py.gluon.html.DIV.tag
 
8538
web2py.gluon.html.EM.tag
 
8539
web2py.gluon.html.EMBED.tag
 
8540
web2py.gluon.html.FIELDSET.tag
 
8541
web2py.gluon.html.FORM.tag
 
8542
web2py.gluon.html.H1.tag
 
8543
web2py.gluon.html.H2.tag
 
8544
web2py.gluon.html.H3.tag
 
8545
web2py.gluon.html.H4.tag
 
8546
web2py.gluon.html.H5.tag
 
8547
web2py.gluon.html.H6.tag
 
8548
web2py.gluon.html.HEAD.tag
 
8549
web2py.gluon.html.HR.tag
 
8550
web2py.gluon.html.HTML.tag
 
8551
web2py.gluon.html.I.tag
 
8552
web2py.gluon.html.IFRAME.tag
 
8553
web2py.gluon.html.IMG.tag
 
8554
web2py.gluon.html.INPUT.tag
 
8555
web2py.gluon.html.LABEL.tag
 
8556
web2py.gluon.html.LEGEND.tag
 
8557
web2py.gluon.html.LI.tag
 
8558
web2py.gluon.html.LINK.tag
 
8559
web2py.gluon.html.MENU.tag
 
8560
web2py.gluon.html.META.tag
 
8561
web2py.gluon.html.OBJECT.tag
 
8562
web2py.gluon.html.OL.tag
 
8563
web2py.gluon.html.OPTGROUP.tag
 
8564
web2py.gluon.html.OPTION.tag
 
8565
web2py.gluon.html.P.tag
 
8566
web2py.gluon.html.PRE.tag
 
8567
web2py.gluon.html.SCRIPT.tag
 
8568
web2py.gluon.html.SELECT.tag
 
8569
web2py.gluon.html.SPAN.tag
 
8570
web2py.gluon.html.STYLE.tag
 
8571
web2py.gluon.html.TABLE.tag
 
8572
web2py.gluon.html.TBODY.tag
 
8573
web2py.gluon.html.TD.tag
 
8574
web2py.gluon.html.TEXTAREA.tag
 
8575
web2py.gluon.html.TFOOT.tag
 
8576
web2py.gluon.html.TH.tag
 
8577
web2py.gluon.html.THEAD.tag
 
8578
web2py.gluon.html.TITLE.tag
 
8579
web2py.gluon.html.TR.tag
 
8580
web2py.gluon.html.TT.tag
 
8581
web2py.gluon.html.UL.tag
 
8582
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-561', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'i'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'*%s*'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
8583
<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-562" class="py-name"><a title="web2py.gluon.html.A.tag
 
8584
web2py.gluon.html.B.tag
 
8585
web2py.gluon.html.BEAUTIFY.tag
 
8586
web2py.gluon.html.BODY.tag
 
8587
web2py.gluon.html.BR.tag
 
8588
web2py.gluon.html.BUTTON.tag
 
8589
web2py.gluon.html.CAT.tag
 
8590
web2py.gluon.html.CENTER.tag
 
8591
web2py.gluon.html.COL.tag
 
8592
web2py.gluon.html.COLGROUP.tag
 
8593
web2py.gluon.html.DIV.tag
 
8594
web2py.gluon.html.EM.tag
 
8595
web2py.gluon.html.EMBED.tag
 
8596
web2py.gluon.html.FIELDSET.tag
 
8597
web2py.gluon.html.FORM.tag
 
8598
web2py.gluon.html.H1.tag
 
8599
web2py.gluon.html.H2.tag
 
8600
web2py.gluon.html.H3.tag
 
8601
web2py.gluon.html.H4.tag
 
8602
web2py.gluon.html.H5.tag
 
8603
web2py.gluon.html.H6.tag
 
8604
web2py.gluon.html.HEAD.tag
 
8605
web2py.gluon.html.HR.tag
 
8606
web2py.gluon.html.HTML.tag
 
8607
web2py.gluon.html.I.tag
 
8608
web2py.gluon.html.IFRAME.tag
 
8609
web2py.gluon.html.IMG.tag
 
8610
web2py.gluon.html.INPUT.tag
 
8611
web2py.gluon.html.LABEL.tag
 
8612
web2py.gluon.html.LEGEND.tag
 
8613
web2py.gluon.html.LI.tag
 
8614
web2py.gluon.html.LINK.tag
 
8615
web2py.gluon.html.MENU.tag
 
8616
web2py.gluon.html.META.tag
 
8617
web2py.gluon.html.OBJECT.tag
 
8618
web2py.gluon.html.OL.tag
 
8619
web2py.gluon.html.OPTGROUP.tag
 
8620
web2py.gluon.html.OPTION.tag
 
8621
web2py.gluon.html.P.tag
 
8622
web2py.gluon.html.PRE.tag
 
8623
web2py.gluon.html.SCRIPT.tag
 
8624
web2py.gluon.html.SELECT.tag
 
8625
web2py.gluon.html.SPAN.tag
 
8626
web2py.gluon.html.STYLE.tag
 
8627
web2py.gluon.html.TABLE.tag
 
8628
web2py.gluon.html.TBODY.tag
 
8629
web2py.gluon.html.TD.tag
 
8630
web2py.gluon.html.TEXTAREA.tag
 
8631
web2py.gluon.html.TFOOT.tag
 
8632
web2py.gluon.html.TH.tag
 
8633
web2py.gluon.html.THEAD.tag
 
8634
web2py.gluon.html.TITLE.tag
 
8635
web2py.gluon.html.TR.tag
 
8636
web2py.gluon.html.TT.tag
 
8637
web2py.gluon.html.UL.tag
 
8638
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-562', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'tt'</tt> <tt class="py-keyword">or</tt> <tt id="link-563" class="py-name"><a title="web2py.gluon.html.A.tag
 
8639
web2py.gluon.html.B.tag
 
8640
web2py.gluon.html.BEAUTIFY.tag
 
8641
web2py.gluon.html.BODY.tag
 
8642
web2py.gluon.html.BR.tag
 
8643
web2py.gluon.html.BUTTON.tag
 
8644
web2py.gluon.html.CAT.tag
 
8645
web2py.gluon.html.CENTER.tag
 
8646
web2py.gluon.html.COL.tag
 
8647
web2py.gluon.html.COLGROUP.tag
 
8648
web2py.gluon.html.DIV.tag
 
8649
web2py.gluon.html.EM.tag
 
8650
web2py.gluon.html.EMBED.tag
 
8651
web2py.gluon.html.FIELDSET.tag
 
8652
web2py.gluon.html.FORM.tag
 
8653
web2py.gluon.html.H1.tag
 
8654
web2py.gluon.html.H2.tag
 
8655
web2py.gluon.html.H3.tag
 
8656
web2py.gluon.html.H4.tag
 
8657
web2py.gluon.html.H5.tag
 
8658
web2py.gluon.html.H6.tag
 
8659
web2py.gluon.html.HEAD.tag
 
8660
web2py.gluon.html.HR.tag
 
8661
web2py.gluon.html.HTML.tag
 
8662
web2py.gluon.html.I.tag
 
8663
web2py.gluon.html.IFRAME.tag
 
8664
web2py.gluon.html.IMG.tag
 
8665
web2py.gluon.html.INPUT.tag
 
8666
web2py.gluon.html.LABEL.tag
 
8667
web2py.gluon.html.LEGEND.tag
 
8668
web2py.gluon.html.LI.tag
 
8669
web2py.gluon.html.LINK.tag
 
8670
web2py.gluon.html.MENU.tag
 
8671
web2py.gluon.html.META.tag
 
8672
web2py.gluon.html.OBJECT.tag
 
8673
web2py.gluon.html.OL.tag
 
8674
web2py.gluon.html.OPTGROUP.tag
 
8675
web2py.gluon.html.OPTION.tag
 
8676
web2py.gluon.html.P.tag
 
8677
web2py.gluon.html.PRE.tag
 
8678
web2py.gluon.html.SCRIPT.tag
 
8679
web2py.gluon.html.SELECT.tag
 
8680
web2py.gluon.html.SPAN.tag
 
8681
web2py.gluon.html.STYLE.tag
 
8682
web2py.gluon.html.TABLE.tag
 
8683
web2py.gluon.html.TBODY.tag
 
8684
web2py.gluon.html.TD.tag
 
8685
web2py.gluon.html.TEXTAREA.tag
 
8686
web2py.gluon.html.TFOOT.tag
 
8687
web2py.gluon.html.TH.tag
 
8688
web2py.gluon.html.THEAD.tag
 
8689
web2py.gluon.html.TITLE.tag
 
8690
web2py.gluon.html.TR.tag
 
8691
web2py.gluon.html.TT.tag
 
8692
web2py.gluon.html.UL.tag
 
8693
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-563', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'`%s`'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
8694
<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-564" class="py-name"><a title="web2py.gluon.html.A.tag
 
8695
web2py.gluon.html.B.tag
 
8696
web2py.gluon.html.BEAUTIFY.tag
 
8697
web2py.gluon.html.BODY.tag
 
8698
web2py.gluon.html.BR.tag
 
8699
web2py.gluon.html.BUTTON.tag
 
8700
web2py.gluon.html.CAT.tag
 
8701
web2py.gluon.html.CENTER.tag
 
8702
web2py.gluon.html.COL.tag
 
8703
web2py.gluon.html.COLGROUP.tag
 
8704
web2py.gluon.html.DIV.tag
 
8705
web2py.gluon.html.EM.tag
 
8706
web2py.gluon.html.EMBED.tag
 
8707
web2py.gluon.html.FIELDSET.tag
 
8708
web2py.gluon.html.FORM.tag
 
8709
web2py.gluon.html.H1.tag
 
8710
web2py.gluon.html.H2.tag
 
8711
web2py.gluon.html.H3.tag
 
8712
web2py.gluon.html.H4.tag
 
8713
web2py.gluon.html.H5.tag
 
8714
web2py.gluon.html.H6.tag
 
8715
web2py.gluon.html.HEAD.tag
 
8716
web2py.gluon.html.HR.tag
 
8717
web2py.gluon.html.HTML.tag
 
8718
web2py.gluon.html.I.tag
 
8719
web2py.gluon.html.IFRAME.tag
 
8720
web2py.gluon.html.IMG.tag
 
8721
web2py.gluon.html.INPUT.tag
 
8722
web2py.gluon.html.LABEL.tag
 
8723
web2py.gluon.html.LEGEND.tag
 
8724
web2py.gluon.html.LI.tag
 
8725
web2py.gluon.html.LINK.tag
 
8726
web2py.gluon.html.MENU.tag
 
8727
web2py.gluon.html.META.tag
 
8728
web2py.gluon.html.OBJECT.tag
 
8729
web2py.gluon.html.OL.tag
 
8730
web2py.gluon.html.OPTGROUP.tag
 
8731
web2py.gluon.html.OPTION.tag
 
8732
web2py.gluon.html.P.tag
 
8733
web2py.gluon.html.PRE.tag
 
8734
web2py.gluon.html.SCRIPT.tag
 
8735
web2py.gluon.html.SELECT.tag
 
8736
web2py.gluon.html.SPAN.tag
 
8737
web2py.gluon.html.STYLE.tag
 
8738
web2py.gluon.html.TABLE.tag
 
8739
web2py.gluon.html.TBODY.tag
 
8740
web2py.gluon.html.TD.tag
 
8741
web2py.gluon.html.TEXTAREA.tag
 
8742
web2py.gluon.html.TFOOT.tag
 
8743
web2py.gluon.html.TH.tag
 
8744
web2py.gluon.html.THEAD.tag
 
8745
web2py.gluon.html.TITLE.tag
 
8746
web2py.gluon.html.TR.tag
 
8747
web2py.gluon.html.TT.tag
 
8748
web2py.gluon.html.UL.tag
 
8749
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-564', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[%s](%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-565', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_href'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
8750
<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-566" class="py-name"><a title="web2py.gluon.html.A.tag
 
8751
web2py.gluon.html.B.tag
 
8752
web2py.gluon.html.BEAUTIFY.tag
 
8753
web2py.gluon.html.BODY.tag
 
8754
web2py.gluon.html.BR.tag
 
8755
web2py.gluon.html.BUTTON.tag
 
8756
web2py.gluon.html.CAT.tag
 
8757
web2py.gluon.html.CENTER.tag
 
8758
web2py.gluon.html.COL.tag
 
8759
web2py.gluon.html.COLGROUP.tag
 
8760
web2py.gluon.html.DIV.tag
 
8761
web2py.gluon.html.EM.tag
 
8762
web2py.gluon.html.EMBED.tag
 
8763
web2py.gluon.html.FIELDSET.tag
 
8764
web2py.gluon.html.FORM.tag
 
8765
web2py.gluon.html.H1.tag
 
8766
web2py.gluon.html.H2.tag
 
8767
web2py.gluon.html.H3.tag
 
8768
web2py.gluon.html.H4.tag
 
8769
web2py.gluon.html.H5.tag
 
8770
web2py.gluon.html.H6.tag
 
8771
web2py.gluon.html.HEAD.tag
 
8772
web2py.gluon.html.HR.tag
 
8773
web2py.gluon.html.HTML.tag
 
8774
web2py.gluon.html.I.tag
 
8775
web2py.gluon.html.IFRAME.tag
 
8776
web2py.gluon.html.IMG.tag
 
8777
web2py.gluon.html.INPUT.tag
 
8778
web2py.gluon.html.LABEL.tag
 
8779
web2py.gluon.html.LEGEND.tag
 
8780
web2py.gluon.html.LI.tag
 
8781
web2py.gluon.html.LINK.tag
 
8782
web2py.gluon.html.MENU.tag
 
8783
web2py.gluon.html.META.tag
 
8784
web2py.gluon.html.OBJECT.tag
 
8785
web2py.gluon.html.OL.tag
 
8786
web2py.gluon.html.OPTGROUP.tag
 
8787
web2py.gluon.html.OPTION.tag
 
8788
web2py.gluon.html.P.tag
 
8789
web2py.gluon.html.PRE.tag
 
8790
web2py.gluon.html.SCRIPT.tag
 
8791
web2py.gluon.html.SELECT.tag
 
8792
web2py.gluon.html.SPAN.tag
 
8793
web2py.gluon.html.STYLE.tag
 
8794
web2py.gluon.html.TABLE.tag
 
8795
web2py.gluon.html.TBODY.tag
 
8796
web2py.gluon.html.TD.tag
 
8797
web2py.gluon.html.TEXTAREA.tag
 
8798
web2py.gluon.html.TFOOT.tag
 
8799
web2py.gluon.html.TH.tag
 
8800
web2py.gluon.html.THEAD.tag
 
8801
web2py.gluon.html.TITLE.tag
 
8802
web2py.gluon.html.TR.tag
 
8803
web2py.gluon.html.TT.tag
 
8804
web2py.gluon.html.UL.tag
 
8805
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-566', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'![%s](%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-567', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_alt'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-568', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_src'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
8806
<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
 
8807
</div><a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"> </tt>
 
8808
<a name="markmin_serializer"></a><div id="markmin_serializer-def"><a name="L2226"></a><tt class="py-lineno">2226</tt> <a class="py-toggle" href="#" id="markmin_serializer-toggle" onclick="return toggle('markmin_serializer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html-module.html#markmin_serializer">markmin_serializer</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt><tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">attr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
8809
</div><div id="markmin_serializer-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="markmin_serializer-expanded"><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">    <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">attr</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
8810
<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">    <tt class="py-comment"># if tag is None: return re.sub('\s+',' ',text)</tt> </tt>
 
8811
<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt id="link-569" class="py-name"><a title="web2py.gluon.html.A.tag
 
8812
web2py.gluon.html.B.tag
 
8813
web2py.gluon.html.BEAUTIFY.tag
 
8814
web2py.gluon.html.BODY.tag
 
8815
web2py.gluon.html.BR.tag
 
8816
web2py.gluon.html.BUTTON.tag
 
8817
web2py.gluon.html.CAT.tag
 
8818
web2py.gluon.html.CENTER.tag
 
8819
web2py.gluon.html.COL.tag
 
8820
web2py.gluon.html.COLGROUP.tag
 
8821
web2py.gluon.html.DIV.tag
 
8822
web2py.gluon.html.EM.tag
 
8823
web2py.gluon.html.EMBED.tag
 
8824
web2py.gluon.html.FIELDSET.tag
 
8825
web2py.gluon.html.FORM.tag
 
8826
web2py.gluon.html.H1.tag
 
8827
web2py.gluon.html.H2.tag
 
8828
web2py.gluon.html.H3.tag
 
8829
web2py.gluon.html.H4.tag
 
8830
web2py.gluon.html.H5.tag
 
8831
web2py.gluon.html.H6.tag
 
8832
web2py.gluon.html.HEAD.tag
 
8833
web2py.gluon.html.HR.tag
 
8834
web2py.gluon.html.HTML.tag
 
8835
web2py.gluon.html.I.tag
 
8836
web2py.gluon.html.IFRAME.tag
 
8837
web2py.gluon.html.IMG.tag
 
8838
web2py.gluon.html.INPUT.tag
 
8839
web2py.gluon.html.LABEL.tag
 
8840
web2py.gluon.html.LEGEND.tag
 
8841
web2py.gluon.html.LI.tag
 
8842
web2py.gluon.html.LINK.tag
 
8843
web2py.gluon.html.MENU.tag
 
8844
web2py.gluon.html.META.tag
 
8845
web2py.gluon.html.OBJECT.tag
 
8846
web2py.gluon.html.OL.tag
 
8847
web2py.gluon.html.OPTGROUP.tag
 
8848
web2py.gluon.html.OPTION.tag
 
8849
web2py.gluon.html.P.tag
 
8850
web2py.gluon.html.PRE.tag
 
8851
web2py.gluon.html.SCRIPT.tag
 
8852
web2py.gluon.html.SELECT.tag
 
8853
web2py.gluon.html.SPAN.tag
 
8854
web2py.gluon.html.STYLE.tag
 
8855
web2py.gluon.html.TABLE.tag
 
8856
web2py.gluon.html.TBODY.tag
 
8857
web2py.gluon.html.TD.tag
 
8858
web2py.gluon.html.TEXTAREA.tag
 
8859
web2py.gluon.html.TFOOT.tag
 
8860
web2py.gluon.html.TH.tag
 
8861
web2py.gluon.html.THEAD.tag
 
8862
web2py.gluon.html.TITLE.tag
 
8863
web2py.gluon.html.TR.tag
 
8864
web2py.gluon.html.TT.tag
 
8865
web2py.gluon.html.UL.tag
 
8866
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-569', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'br'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n\n'</tt> </tt>
 
8867
<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-570" class="py-name"><a title="web2py.gluon.html.A.tag
 
8868
web2py.gluon.html.B.tag
 
8869
web2py.gluon.html.BEAUTIFY.tag
 
8870
web2py.gluon.html.BODY.tag
 
8871
web2py.gluon.html.BR.tag
 
8872
web2py.gluon.html.BUTTON.tag
 
8873
web2py.gluon.html.CAT.tag
 
8874
web2py.gluon.html.CENTER.tag
 
8875
web2py.gluon.html.COL.tag
 
8876
web2py.gluon.html.COLGROUP.tag
 
8877
web2py.gluon.html.DIV.tag
 
8878
web2py.gluon.html.EM.tag
 
8879
web2py.gluon.html.EMBED.tag
 
8880
web2py.gluon.html.FIELDSET.tag
 
8881
web2py.gluon.html.FORM.tag
 
8882
web2py.gluon.html.H1.tag
 
8883
web2py.gluon.html.H2.tag
 
8884
web2py.gluon.html.H3.tag
 
8885
web2py.gluon.html.H4.tag
 
8886
web2py.gluon.html.H5.tag
 
8887
web2py.gluon.html.H6.tag
 
8888
web2py.gluon.html.HEAD.tag
 
8889
web2py.gluon.html.HR.tag
 
8890
web2py.gluon.html.HTML.tag
 
8891
web2py.gluon.html.I.tag
 
8892
web2py.gluon.html.IFRAME.tag
 
8893
web2py.gluon.html.IMG.tag
 
8894
web2py.gluon.html.INPUT.tag
 
8895
web2py.gluon.html.LABEL.tag
 
8896
web2py.gluon.html.LEGEND.tag
 
8897
web2py.gluon.html.LI.tag
 
8898
web2py.gluon.html.LINK.tag
 
8899
web2py.gluon.html.MENU.tag
 
8900
web2py.gluon.html.META.tag
 
8901
web2py.gluon.html.OBJECT.tag
 
8902
web2py.gluon.html.OL.tag
 
8903
web2py.gluon.html.OPTGROUP.tag
 
8904
web2py.gluon.html.OPTION.tag
 
8905
web2py.gluon.html.P.tag
 
8906
web2py.gluon.html.PRE.tag
 
8907
web2py.gluon.html.SCRIPT.tag
 
8908
web2py.gluon.html.SELECT.tag
 
8909
web2py.gluon.html.SPAN.tag
 
8910
web2py.gluon.html.STYLE.tag
 
8911
web2py.gluon.html.TABLE.tag
 
8912
web2py.gluon.html.TBODY.tag
 
8913
web2py.gluon.html.TD.tag
 
8914
web2py.gluon.html.TEXTAREA.tag
 
8915
web2py.gluon.html.TFOOT.tag
 
8916
web2py.gluon.html.TH.tag
 
8917
web2py.gluon.html.THEAD.tag
 
8918
web2py.gluon.html.TITLE.tag
 
8919
web2py.gluon.html.TR.tag
 
8920
web2py.gluon.html.TT.tag
 
8921
web2py.gluon.html.UL.tag
 
8922
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-570', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h1'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'# '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8923
<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-571" class="py-name"><a title="web2py.gluon.html.A.tag
 
8924
web2py.gluon.html.B.tag
 
8925
web2py.gluon.html.BEAUTIFY.tag
 
8926
web2py.gluon.html.BODY.tag
 
8927
web2py.gluon.html.BR.tag
 
8928
web2py.gluon.html.BUTTON.tag
 
8929
web2py.gluon.html.CAT.tag
 
8930
web2py.gluon.html.CENTER.tag
 
8931
web2py.gluon.html.COL.tag
 
8932
web2py.gluon.html.COLGROUP.tag
 
8933
web2py.gluon.html.DIV.tag
 
8934
web2py.gluon.html.EM.tag
 
8935
web2py.gluon.html.EMBED.tag
 
8936
web2py.gluon.html.FIELDSET.tag
 
8937
web2py.gluon.html.FORM.tag
 
8938
web2py.gluon.html.H1.tag
 
8939
web2py.gluon.html.H2.tag
 
8940
web2py.gluon.html.H3.tag
 
8941
web2py.gluon.html.H4.tag
 
8942
web2py.gluon.html.H5.tag
 
8943
web2py.gluon.html.H6.tag
 
8944
web2py.gluon.html.HEAD.tag
 
8945
web2py.gluon.html.HR.tag
 
8946
web2py.gluon.html.HTML.tag
 
8947
web2py.gluon.html.I.tag
 
8948
web2py.gluon.html.IFRAME.tag
 
8949
web2py.gluon.html.IMG.tag
 
8950
web2py.gluon.html.INPUT.tag
 
8951
web2py.gluon.html.LABEL.tag
 
8952
web2py.gluon.html.LEGEND.tag
 
8953
web2py.gluon.html.LI.tag
 
8954
web2py.gluon.html.LINK.tag
 
8955
web2py.gluon.html.MENU.tag
 
8956
web2py.gluon.html.META.tag
 
8957
web2py.gluon.html.OBJECT.tag
 
8958
web2py.gluon.html.OL.tag
 
8959
web2py.gluon.html.OPTGROUP.tag
 
8960
web2py.gluon.html.OPTION.tag
 
8961
web2py.gluon.html.P.tag
 
8962
web2py.gluon.html.PRE.tag
 
8963
web2py.gluon.html.SCRIPT.tag
 
8964
web2py.gluon.html.SELECT.tag
 
8965
web2py.gluon.html.SPAN.tag
 
8966
web2py.gluon.html.STYLE.tag
 
8967
web2py.gluon.html.TABLE.tag
 
8968
web2py.gluon.html.TBODY.tag
 
8969
web2py.gluon.html.TD.tag
 
8970
web2py.gluon.html.TEXTAREA.tag
 
8971
web2py.gluon.html.TFOOT.tag
 
8972
web2py.gluon.html.TH.tag
 
8973
web2py.gluon.html.THEAD.tag
 
8974
web2py.gluon.html.TITLE.tag
 
8975
web2py.gluon.html.TR.tag
 
8976
web2py.gluon.html.TT.tag
 
8977
web2py.gluon.html.UL.tag
 
8978
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-571', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h2'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">2</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
8979
<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-572" class="py-name"><a title="web2py.gluon.html.A.tag
 
8980
web2py.gluon.html.B.tag
 
8981
web2py.gluon.html.BEAUTIFY.tag
 
8982
web2py.gluon.html.BODY.tag
 
8983
web2py.gluon.html.BR.tag
 
8984
web2py.gluon.html.BUTTON.tag
 
8985
web2py.gluon.html.CAT.tag
 
8986
web2py.gluon.html.CENTER.tag
 
8987
web2py.gluon.html.COL.tag
 
8988
web2py.gluon.html.COLGROUP.tag
 
8989
web2py.gluon.html.DIV.tag
 
8990
web2py.gluon.html.EM.tag
 
8991
web2py.gluon.html.EMBED.tag
 
8992
web2py.gluon.html.FIELDSET.tag
 
8993
web2py.gluon.html.FORM.tag
 
8994
web2py.gluon.html.H1.tag
 
8995
web2py.gluon.html.H2.tag
 
8996
web2py.gluon.html.H3.tag
 
8997
web2py.gluon.html.H4.tag
 
8998
web2py.gluon.html.H5.tag
 
8999
web2py.gluon.html.H6.tag
 
9000
web2py.gluon.html.HEAD.tag
 
9001
web2py.gluon.html.HR.tag
 
9002
web2py.gluon.html.HTML.tag
 
9003
web2py.gluon.html.I.tag
 
9004
web2py.gluon.html.IFRAME.tag
 
9005
web2py.gluon.html.IMG.tag
 
9006
web2py.gluon.html.INPUT.tag
 
9007
web2py.gluon.html.LABEL.tag
 
9008
web2py.gluon.html.LEGEND.tag
 
9009
web2py.gluon.html.LI.tag
 
9010
web2py.gluon.html.LINK.tag
 
9011
web2py.gluon.html.MENU.tag
 
9012
web2py.gluon.html.META.tag
 
9013
web2py.gluon.html.OBJECT.tag
 
9014
web2py.gluon.html.OL.tag
 
9015
web2py.gluon.html.OPTGROUP.tag
 
9016
web2py.gluon.html.OPTION.tag
 
9017
web2py.gluon.html.P.tag
 
9018
web2py.gluon.html.PRE.tag
 
9019
web2py.gluon.html.SCRIPT.tag
 
9020
web2py.gluon.html.SELECT.tag
 
9021
web2py.gluon.html.SPAN.tag
 
9022
web2py.gluon.html.STYLE.tag
 
9023
web2py.gluon.html.TABLE.tag
 
9024
web2py.gluon.html.TBODY.tag
 
9025
web2py.gluon.html.TD.tag
 
9026
web2py.gluon.html.TEXTAREA.tag
 
9027
web2py.gluon.html.TFOOT.tag
 
9028
web2py.gluon.html.TH.tag
 
9029
web2py.gluon.html.THEAD.tag
 
9030
web2py.gluon.html.TITLE.tag
 
9031
web2py.gluon.html.TR.tag
 
9032
web2py.gluon.html.TT.tag
 
9033
web2py.gluon.html.UL.tag
 
9034
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-572', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h3'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
9035
<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-573" class="py-name"><a title="web2py.gluon.html.A.tag
 
9036
web2py.gluon.html.B.tag
 
9037
web2py.gluon.html.BEAUTIFY.tag
 
9038
web2py.gluon.html.BODY.tag
 
9039
web2py.gluon.html.BR.tag
 
9040
web2py.gluon.html.BUTTON.tag
 
9041
web2py.gluon.html.CAT.tag
 
9042
web2py.gluon.html.CENTER.tag
 
9043
web2py.gluon.html.COL.tag
 
9044
web2py.gluon.html.COLGROUP.tag
 
9045
web2py.gluon.html.DIV.tag
 
9046
web2py.gluon.html.EM.tag
 
9047
web2py.gluon.html.EMBED.tag
 
9048
web2py.gluon.html.FIELDSET.tag
 
9049
web2py.gluon.html.FORM.tag
 
9050
web2py.gluon.html.H1.tag
 
9051
web2py.gluon.html.H2.tag
 
9052
web2py.gluon.html.H3.tag
 
9053
web2py.gluon.html.H4.tag
 
9054
web2py.gluon.html.H5.tag
 
9055
web2py.gluon.html.H6.tag
 
9056
web2py.gluon.html.HEAD.tag
 
9057
web2py.gluon.html.HR.tag
 
9058
web2py.gluon.html.HTML.tag
 
9059
web2py.gluon.html.I.tag
 
9060
web2py.gluon.html.IFRAME.tag
 
9061
web2py.gluon.html.IMG.tag
 
9062
web2py.gluon.html.INPUT.tag
 
9063
web2py.gluon.html.LABEL.tag
 
9064
web2py.gluon.html.LEGEND.tag
 
9065
web2py.gluon.html.LI.tag
 
9066
web2py.gluon.html.LINK.tag
 
9067
web2py.gluon.html.MENU.tag
 
9068
web2py.gluon.html.META.tag
 
9069
web2py.gluon.html.OBJECT.tag
 
9070
web2py.gluon.html.OL.tag
 
9071
web2py.gluon.html.OPTGROUP.tag
 
9072
web2py.gluon.html.OPTION.tag
 
9073
web2py.gluon.html.P.tag
 
9074
web2py.gluon.html.PRE.tag
 
9075
web2py.gluon.html.SCRIPT.tag
 
9076
web2py.gluon.html.SELECT.tag
 
9077
web2py.gluon.html.SPAN.tag
 
9078
web2py.gluon.html.STYLE.tag
 
9079
web2py.gluon.html.TABLE.tag
 
9080
web2py.gluon.html.TBODY.tag
 
9081
web2py.gluon.html.TD.tag
 
9082
web2py.gluon.html.TEXTAREA.tag
 
9083
web2py.gluon.html.TFOOT.tag
 
9084
web2py.gluon.html.TH.tag
 
9085
web2py.gluon.html.THEAD.tag
 
9086
web2py.gluon.html.TITLE.tag
 
9087
web2py.gluon.html.TR.tag
 
9088
web2py.gluon.html.TT.tag
 
9089
web2py.gluon.html.UL.tag
 
9090
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-573', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'h4'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'#'</tt><tt class="py-op">*</tt><tt class="py-number">4</tt><tt class="py-op">+</tt><tt class="py-string">' '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
9091
<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-574" class="py-name"><a title="web2py.gluon.html.A.tag
 
9092
web2py.gluon.html.B.tag
 
9093
web2py.gluon.html.BEAUTIFY.tag
 
9094
web2py.gluon.html.BODY.tag
 
9095
web2py.gluon.html.BR.tag
 
9096
web2py.gluon.html.BUTTON.tag
 
9097
web2py.gluon.html.CAT.tag
 
9098
web2py.gluon.html.CENTER.tag
 
9099
web2py.gluon.html.COL.tag
 
9100
web2py.gluon.html.COLGROUP.tag
 
9101
web2py.gluon.html.DIV.tag
 
9102
web2py.gluon.html.EM.tag
 
9103
web2py.gluon.html.EMBED.tag
 
9104
web2py.gluon.html.FIELDSET.tag
 
9105
web2py.gluon.html.FORM.tag
 
9106
web2py.gluon.html.H1.tag
 
9107
web2py.gluon.html.H2.tag
 
9108
web2py.gluon.html.H3.tag
 
9109
web2py.gluon.html.H4.tag
 
9110
web2py.gluon.html.H5.tag
 
9111
web2py.gluon.html.H6.tag
 
9112
web2py.gluon.html.HEAD.tag
 
9113
web2py.gluon.html.HR.tag
 
9114
web2py.gluon.html.HTML.tag
 
9115
web2py.gluon.html.I.tag
 
9116
web2py.gluon.html.IFRAME.tag
 
9117
web2py.gluon.html.IMG.tag
 
9118
web2py.gluon.html.INPUT.tag
 
9119
web2py.gluon.html.LABEL.tag
 
9120
web2py.gluon.html.LEGEND.tag
 
9121
web2py.gluon.html.LI.tag
 
9122
web2py.gluon.html.LINK.tag
 
9123
web2py.gluon.html.MENU.tag
 
9124
web2py.gluon.html.META.tag
 
9125
web2py.gluon.html.OBJECT.tag
 
9126
web2py.gluon.html.OL.tag
 
9127
web2py.gluon.html.OPTGROUP.tag
 
9128
web2py.gluon.html.OPTION.tag
 
9129
web2py.gluon.html.P.tag
 
9130
web2py.gluon.html.PRE.tag
 
9131
web2py.gluon.html.SCRIPT.tag
 
9132
web2py.gluon.html.SELECT.tag
 
9133
web2py.gluon.html.SPAN.tag
 
9134
web2py.gluon.html.STYLE.tag
 
9135
web2py.gluon.html.TABLE.tag
 
9136
web2py.gluon.html.TBODY.tag
 
9137
web2py.gluon.html.TD.tag
 
9138
web2py.gluon.html.TEXTAREA.tag
 
9139
web2py.gluon.html.TFOOT.tag
 
9140
web2py.gluon.html.TH.tag
 
9141
web2py.gluon.html.THEAD.tag
 
9142
web2py.gluon.html.TITLE.tag
 
9143
web2py.gluon.html.TR.tag
 
9144
web2py.gluon.html.TT.tag
 
9145
web2py.gluon.html.UL.tag
 
9146
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-574', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n\n'</tt> </tt>
 
9147
<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-575" class="py-name"><a title="web2py.gluon.html.A.tag
 
9148
web2py.gluon.html.B.tag
 
9149
web2py.gluon.html.BEAUTIFY.tag
 
9150
web2py.gluon.html.BODY.tag
 
9151
web2py.gluon.html.BR.tag
 
9152
web2py.gluon.html.BUTTON.tag
 
9153
web2py.gluon.html.CAT.tag
 
9154
web2py.gluon.html.CENTER.tag
 
9155
web2py.gluon.html.COL.tag
 
9156
web2py.gluon.html.COLGROUP.tag
 
9157
web2py.gluon.html.DIV.tag
 
9158
web2py.gluon.html.EM.tag
 
9159
web2py.gluon.html.EMBED.tag
 
9160
web2py.gluon.html.FIELDSET.tag
 
9161
web2py.gluon.html.FORM.tag
 
9162
web2py.gluon.html.H1.tag
 
9163
web2py.gluon.html.H2.tag
 
9164
web2py.gluon.html.H3.tag
 
9165
web2py.gluon.html.H4.tag
 
9166
web2py.gluon.html.H5.tag
 
9167
web2py.gluon.html.H6.tag
 
9168
web2py.gluon.html.HEAD.tag
 
9169
web2py.gluon.html.HR.tag
 
9170
web2py.gluon.html.HTML.tag
 
9171
web2py.gluon.html.I.tag
 
9172
web2py.gluon.html.IFRAME.tag
 
9173
web2py.gluon.html.IMG.tag
 
9174
web2py.gluon.html.INPUT.tag
 
9175
web2py.gluon.html.LABEL.tag
 
9176
web2py.gluon.html.LEGEND.tag
 
9177
web2py.gluon.html.LI.tag
 
9178
web2py.gluon.html.LINK.tag
 
9179
web2py.gluon.html.MENU.tag
 
9180
web2py.gluon.html.META.tag
 
9181
web2py.gluon.html.OBJECT.tag
 
9182
web2py.gluon.html.OL.tag
 
9183
web2py.gluon.html.OPTGROUP.tag
 
9184
web2py.gluon.html.OPTION.tag
 
9185
web2py.gluon.html.P.tag
 
9186
web2py.gluon.html.PRE.tag
 
9187
web2py.gluon.html.SCRIPT.tag
 
9188
web2py.gluon.html.SELECT.tag
 
9189
web2py.gluon.html.SPAN.tag
 
9190
web2py.gluon.html.STYLE.tag
 
9191
web2py.gluon.html.TABLE.tag
 
9192
web2py.gluon.html.TBODY.tag
 
9193
web2py.gluon.html.TD.tag
 
9194
web2py.gluon.html.TEXTAREA.tag
 
9195
web2py.gluon.html.TFOOT.tag
 
9196
web2py.gluon.html.TH.tag
 
9197
web2py.gluon.html.THEAD.tag
 
9198
web2py.gluon.html.TITLE.tag
 
9199
web2py.gluon.html.TR.tag
 
9200
web2py.gluon.html.TT.tag
 
9201
web2py.gluon.html.UL.tag
 
9202
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-575', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'li'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n- '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
 
9203
<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-576" class="py-name"><a title="web2py.gluon.html.A.tag
 
9204
web2py.gluon.html.B.tag
 
9205
web2py.gluon.html.BEAUTIFY.tag
 
9206
web2py.gluon.html.BODY.tag
 
9207
web2py.gluon.html.BR.tag
 
9208
web2py.gluon.html.BUTTON.tag
 
9209
web2py.gluon.html.CAT.tag
 
9210
web2py.gluon.html.CENTER.tag
 
9211
web2py.gluon.html.COL.tag
 
9212
web2py.gluon.html.COLGROUP.tag
 
9213
web2py.gluon.html.DIV.tag
 
9214
web2py.gluon.html.EM.tag
 
9215
web2py.gluon.html.EMBED.tag
 
9216
web2py.gluon.html.FIELDSET.tag
 
9217
web2py.gluon.html.FORM.tag
 
9218
web2py.gluon.html.H1.tag
 
9219
web2py.gluon.html.H2.tag
 
9220
web2py.gluon.html.H3.tag
 
9221
web2py.gluon.html.H4.tag
 
9222
web2py.gluon.html.H5.tag
 
9223
web2py.gluon.html.H6.tag
 
9224
web2py.gluon.html.HEAD.tag
 
9225
web2py.gluon.html.HR.tag
 
9226
web2py.gluon.html.HTML.tag
 
9227
web2py.gluon.html.I.tag
 
9228
web2py.gluon.html.IFRAME.tag
 
9229
web2py.gluon.html.IMG.tag
 
9230
web2py.gluon.html.INPUT.tag
 
9231
web2py.gluon.html.LABEL.tag
 
9232
web2py.gluon.html.LEGEND.tag
 
9233
web2py.gluon.html.LI.tag
 
9234
web2py.gluon.html.LINK.tag
 
9235
web2py.gluon.html.MENU.tag
 
9236
web2py.gluon.html.META.tag
 
9237
web2py.gluon.html.OBJECT.tag
 
9238
web2py.gluon.html.OL.tag
 
9239
web2py.gluon.html.OPTGROUP.tag
 
9240
web2py.gluon.html.OPTION.tag
 
9241
web2py.gluon.html.P.tag
 
9242
web2py.gluon.html.PRE.tag
 
9243
web2py.gluon.html.SCRIPT.tag
 
9244
web2py.gluon.html.SELECT.tag
 
9245
web2py.gluon.html.SPAN.tag
 
9246
web2py.gluon.html.STYLE.tag
 
9247
web2py.gluon.html.TABLE.tag
 
9248
web2py.gluon.html.TBODY.tag
 
9249
web2py.gluon.html.TD.tag
 
9250
web2py.gluon.html.TEXTAREA.tag
 
9251
web2py.gluon.html.TFOOT.tag
 
9252
web2py.gluon.html.TH.tag
 
9253
web2py.gluon.html.THEAD.tag
 
9254
web2py.gluon.html.TITLE.tag
 
9255
web2py.gluon.html.TR.tag
 
9256
web2py.gluon.html.TT.tag
 
9257
web2py.gluon.html.UL.tag
 
9258
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-576', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'tr'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">text</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</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">'\n'</tt><tt class="py-op">,</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">'\n'</tt> </tt>
 
9259
<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-577" class="py-name"><a title="web2py.gluon.html.A.tag
 
9260
web2py.gluon.html.B.tag
 
9261
web2py.gluon.html.BEAUTIFY.tag
 
9262
web2py.gluon.html.BODY.tag
 
9263
web2py.gluon.html.BR.tag
 
9264
web2py.gluon.html.BUTTON.tag
 
9265
web2py.gluon.html.CAT.tag
 
9266
web2py.gluon.html.CENTER.tag
 
9267
web2py.gluon.html.COL.tag
 
9268
web2py.gluon.html.COLGROUP.tag
 
9269
web2py.gluon.html.DIV.tag
 
9270
web2py.gluon.html.EM.tag
 
9271
web2py.gluon.html.EMBED.tag
 
9272
web2py.gluon.html.FIELDSET.tag
 
9273
web2py.gluon.html.FORM.tag
 
9274
web2py.gluon.html.H1.tag
 
9275
web2py.gluon.html.H2.tag
 
9276
web2py.gluon.html.H3.tag
 
9277
web2py.gluon.html.H4.tag
 
9278
web2py.gluon.html.H5.tag
 
9279
web2py.gluon.html.H6.tag
 
9280
web2py.gluon.html.HEAD.tag
 
9281
web2py.gluon.html.HR.tag
 
9282
web2py.gluon.html.HTML.tag
 
9283
web2py.gluon.html.I.tag
 
9284
web2py.gluon.html.IFRAME.tag
 
9285
web2py.gluon.html.IMG.tag
 
9286
web2py.gluon.html.INPUT.tag
 
9287
web2py.gluon.html.LABEL.tag
 
9288
web2py.gluon.html.LEGEND.tag
 
9289
web2py.gluon.html.LI.tag
 
9290
web2py.gluon.html.LINK.tag
 
9291
web2py.gluon.html.MENU.tag
 
9292
web2py.gluon.html.META.tag
 
9293
web2py.gluon.html.OBJECT.tag
 
9294
web2py.gluon.html.OL.tag
 
9295
web2py.gluon.html.OPTGROUP.tag
 
9296
web2py.gluon.html.OPTION.tag
 
9297
web2py.gluon.html.P.tag
 
9298
web2py.gluon.html.PRE.tag
 
9299
web2py.gluon.html.SCRIPT.tag
 
9300
web2py.gluon.html.SELECT.tag
 
9301
web2py.gluon.html.SPAN.tag
 
9302
web2py.gluon.html.STYLE.tag
 
9303
web2py.gluon.html.TABLE.tag
 
9304
web2py.gluon.html.TBODY.tag
 
9305
web2py.gluon.html.TD.tag
 
9306
web2py.gluon.html.TEXTAREA.tag
 
9307
web2py.gluon.html.TFOOT.tag
 
9308
web2py.gluon.html.TH.tag
 
9309
web2py.gluon.html.THEAD.tag
 
9310
web2py.gluon.html.TITLE.tag
 
9311
web2py.gluon.html.TR.tag
 
9312
web2py.gluon.html.TT.tag
 
9313
web2py.gluon.html.UL.tag
 
9314
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-577', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'table'</tt><tt class="py-op">,</tt><tt class="py-string">'blockquote'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'\n-----\n'</tt><tt class="py-op">+</tt><tt class="py-name">text</tt><tt class="py-op">+</tt><tt class="py-string">'\n------\n'</tt> </tt>
 
9315
<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-578" class="py-name"><a title="web2py.gluon.html.A.tag
 
9316
web2py.gluon.html.B.tag
 
9317
web2py.gluon.html.BEAUTIFY.tag
 
9318
web2py.gluon.html.BODY.tag
 
9319
web2py.gluon.html.BR.tag
 
9320
web2py.gluon.html.BUTTON.tag
 
9321
web2py.gluon.html.CAT.tag
 
9322
web2py.gluon.html.CENTER.tag
 
9323
web2py.gluon.html.COL.tag
 
9324
web2py.gluon.html.COLGROUP.tag
 
9325
web2py.gluon.html.DIV.tag
 
9326
web2py.gluon.html.EM.tag
 
9327
web2py.gluon.html.EMBED.tag
 
9328
web2py.gluon.html.FIELDSET.tag
 
9329
web2py.gluon.html.FORM.tag
 
9330
web2py.gluon.html.H1.tag
 
9331
web2py.gluon.html.H2.tag
 
9332
web2py.gluon.html.H3.tag
 
9333
web2py.gluon.html.H4.tag
 
9334
web2py.gluon.html.H5.tag
 
9335
web2py.gluon.html.H6.tag
 
9336
web2py.gluon.html.HEAD.tag
 
9337
web2py.gluon.html.HR.tag
 
9338
web2py.gluon.html.HTML.tag
 
9339
web2py.gluon.html.I.tag
 
9340
web2py.gluon.html.IFRAME.tag
 
9341
web2py.gluon.html.IMG.tag
 
9342
web2py.gluon.html.INPUT.tag
 
9343
web2py.gluon.html.LABEL.tag
 
9344
web2py.gluon.html.LEGEND.tag
 
9345
web2py.gluon.html.LI.tag
 
9346
web2py.gluon.html.LINK.tag
 
9347
web2py.gluon.html.MENU.tag
 
9348
web2py.gluon.html.META.tag
 
9349
web2py.gluon.html.OBJECT.tag
 
9350
web2py.gluon.html.OL.tag
 
9351
web2py.gluon.html.OPTGROUP.tag
 
9352
web2py.gluon.html.OPTION.tag
 
9353
web2py.gluon.html.P.tag
 
9354
web2py.gluon.html.PRE.tag
 
9355
web2py.gluon.html.SCRIPT.tag
 
9356
web2py.gluon.html.SELECT.tag
 
9357
web2py.gluon.html.SPAN.tag
 
9358
web2py.gluon.html.STYLE.tag
 
9359
web2py.gluon.html.TABLE.tag
 
9360
web2py.gluon.html.TBODY.tag
 
9361
web2py.gluon.html.TD.tag
 
9362
web2py.gluon.html.TEXTAREA.tag
 
9363
web2py.gluon.html.TFOOT.tag
 
9364
web2py.gluon.html.TH.tag
 
9365
web2py.gluon.html.THEAD.tag
 
9366
web2py.gluon.html.TITLE.tag
 
9367
web2py.gluon.html.TR.tag
 
9368
web2py.gluon.html.TT.tag
 
9369
web2py.gluon.html.UL.tag
 
9370
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-578', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'td'</tt><tt class="py-op">,</tt><tt class="py-string">'th'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">' | '</tt><tt class="py-op">+</tt><tt class="py-name">text</tt> </tt>
 
9371
<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-579" class="py-name"><a title="web2py.gluon.html.A.tag
 
9372
web2py.gluon.html.B.tag
 
9373
web2py.gluon.html.BEAUTIFY.tag
 
9374
web2py.gluon.html.BODY.tag
 
9375
web2py.gluon.html.BR.tag
 
9376
web2py.gluon.html.BUTTON.tag
 
9377
web2py.gluon.html.CAT.tag
 
9378
web2py.gluon.html.CENTER.tag
 
9379
web2py.gluon.html.COL.tag
 
9380
web2py.gluon.html.COLGROUP.tag
 
9381
web2py.gluon.html.DIV.tag
 
9382
web2py.gluon.html.EM.tag
 
9383
web2py.gluon.html.EMBED.tag
 
9384
web2py.gluon.html.FIELDSET.tag
 
9385
web2py.gluon.html.FORM.tag
 
9386
web2py.gluon.html.H1.tag
 
9387
web2py.gluon.html.H2.tag
 
9388
web2py.gluon.html.H3.tag
 
9389
web2py.gluon.html.H4.tag
 
9390
web2py.gluon.html.H5.tag
 
9391
web2py.gluon.html.H6.tag
 
9392
web2py.gluon.html.HEAD.tag
 
9393
web2py.gluon.html.HR.tag
 
9394
web2py.gluon.html.HTML.tag
 
9395
web2py.gluon.html.I.tag
 
9396
web2py.gluon.html.IFRAME.tag
 
9397
web2py.gluon.html.IMG.tag
 
9398
web2py.gluon.html.INPUT.tag
 
9399
web2py.gluon.html.LABEL.tag
 
9400
web2py.gluon.html.LEGEND.tag
 
9401
web2py.gluon.html.LI.tag
 
9402
web2py.gluon.html.LINK.tag
 
9403
web2py.gluon.html.MENU.tag
 
9404
web2py.gluon.html.META.tag
 
9405
web2py.gluon.html.OBJECT.tag
 
9406
web2py.gluon.html.OL.tag
 
9407
web2py.gluon.html.OPTGROUP.tag
 
9408
web2py.gluon.html.OPTION.tag
 
9409
web2py.gluon.html.P.tag
 
9410
web2py.gluon.html.PRE.tag
 
9411
web2py.gluon.html.SCRIPT.tag
 
9412
web2py.gluon.html.SELECT.tag
 
9413
web2py.gluon.html.SPAN.tag
 
9414
web2py.gluon.html.STYLE.tag
 
9415
web2py.gluon.html.TABLE.tag
 
9416
web2py.gluon.html.TBODY.tag
 
9417
web2py.gluon.html.TD.tag
 
9418
web2py.gluon.html.TEXTAREA.tag
 
9419
web2py.gluon.html.TFOOT.tag
 
9420
web2py.gluon.html.TH.tag
 
9421
web2py.gluon.html.THEAD.tag
 
9422
web2py.gluon.html.TITLE.tag
 
9423
web2py.gluon.html.TR.tag
 
9424
web2py.gluon.html.TT.tag
 
9425
web2py.gluon.html.UL.tag
 
9426
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-579', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt><tt class="py-string">'strong'</tt><tt class="py-op">,</tt><tt class="py-string">'label'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'**%s**'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
9427
<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-580" class="py-name"><a title="web2py.gluon.html.A.tag
 
9428
web2py.gluon.html.B.tag
 
9429
web2py.gluon.html.BEAUTIFY.tag
 
9430
web2py.gluon.html.BODY.tag
 
9431
web2py.gluon.html.BR.tag
 
9432
web2py.gluon.html.BUTTON.tag
 
9433
web2py.gluon.html.CAT.tag
 
9434
web2py.gluon.html.CENTER.tag
 
9435
web2py.gluon.html.COL.tag
 
9436
web2py.gluon.html.COLGROUP.tag
 
9437
web2py.gluon.html.DIV.tag
 
9438
web2py.gluon.html.EM.tag
 
9439
web2py.gluon.html.EMBED.tag
 
9440
web2py.gluon.html.FIELDSET.tag
 
9441
web2py.gluon.html.FORM.tag
 
9442
web2py.gluon.html.H1.tag
 
9443
web2py.gluon.html.H2.tag
 
9444
web2py.gluon.html.H3.tag
 
9445
web2py.gluon.html.H4.tag
 
9446
web2py.gluon.html.H5.tag
 
9447
web2py.gluon.html.H6.tag
 
9448
web2py.gluon.html.HEAD.tag
 
9449
web2py.gluon.html.HR.tag
 
9450
web2py.gluon.html.HTML.tag
 
9451
web2py.gluon.html.I.tag
 
9452
web2py.gluon.html.IFRAME.tag
 
9453
web2py.gluon.html.IMG.tag
 
9454
web2py.gluon.html.INPUT.tag
 
9455
web2py.gluon.html.LABEL.tag
 
9456
web2py.gluon.html.LEGEND.tag
 
9457
web2py.gluon.html.LI.tag
 
9458
web2py.gluon.html.LINK.tag
 
9459
web2py.gluon.html.MENU.tag
 
9460
web2py.gluon.html.META.tag
 
9461
web2py.gluon.html.OBJECT.tag
 
9462
web2py.gluon.html.OL.tag
 
9463
web2py.gluon.html.OPTGROUP.tag
 
9464
web2py.gluon.html.OPTION.tag
 
9465
web2py.gluon.html.P.tag
 
9466
web2py.gluon.html.PRE.tag
 
9467
web2py.gluon.html.SCRIPT.tag
 
9468
web2py.gluon.html.SELECT.tag
 
9469
web2py.gluon.html.SPAN.tag
 
9470
web2py.gluon.html.STYLE.tag
 
9471
web2py.gluon.html.TABLE.tag
 
9472
web2py.gluon.html.TBODY.tag
 
9473
web2py.gluon.html.TD.tag
 
9474
web2py.gluon.html.TEXTAREA.tag
 
9475
web2py.gluon.html.TFOOT.tag
 
9476
web2py.gluon.html.TH.tag
 
9477
web2py.gluon.html.THEAD.tag
 
9478
web2py.gluon.html.TITLE.tag
 
9479
web2py.gluon.html.TR.tag
 
9480
web2py.gluon.html.TT.tag
 
9481
web2py.gluon.html.UL.tag
 
9482
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-580', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'em'</tt><tt class="py-op">,</tt><tt class="py-string">'i'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">"''%s''"</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
9483
<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-581" class="py-name"><a title="web2py.gluon.html.A.tag
 
9484
web2py.gluon.html.B.tag
 
9485
web2py.gluon.html.BEAUTIFY.tag
 
9486
web2py.gluon.html.BODY.tag
 
9487
web2py.gluon.html.BR.tag
 
9488
web2py.gluon.html.BUTTON.tag
 
9489
web2py.gluon.html.CAT.tag
 
9490
web2py.gluon.html.CENTER.tag
 
9491
web2py.gluon.html.COL.tag
 
9492
web2py.gluon.html.COLGROUP.tag
 
9493
web2py.gluon.html.DIV.tag
 
9494
web2py.gluon.html.EM.tag
 
9495
web2py.gluon.html.EMBED.tag
 
9496
web2py.gluon.html.FIELDSET.tag
 
9497
web2py.gluon.html.FORM.tag
 
9498
web2py.gluon.html.H1.tag
 
9499
web2py.gluon.html.H2.tag
 
9500
web2py.gluon.html.H3.tag
 
9501
web2py.gluon.html.H4.tag
 
9502
web2py.gluon.html.H5.tag
 
9503
web2py.gluon.html.H6.tag
 
9504
web2py.gluon.html.HEAD.tag
 
9505
web2py.gluon.html.HR.tag
 
9506
web2py.gluon.html.HTML.tag
 
9507
web2py.gluon.html.I.tag
 
9508
web2py.gluon.html.IFRAME.tag
 
9509
web2py.gluon.html.IMG.tag
 
9510
web2py.gluon.html.INPUT.tag
 
9511
web2py.gluon.html.LABEL.tag
 
9512
web2py.gluon.html.LEGEND.tag
 
9513
web2py.gluon.html.LI.tag
 
9514
web2py.gluon.html.LINK.tag
 
9515
web2py.gluon.html.MENU.tag
 
9516
web2py.gluon.html.META.tag
 
9517
web2py.gluon.html.OBJECT.tag
 
9518
web2py.gluon.html.OL.tag
 
9519
web2py.gluon.html.OPTGROUP.tag
 
9520
web2py.gluon.html.OPTION.tag
 
9521
web2py.gluon.html.P.tag
 
9522
web2py.gluon.html.PRE.tag
 
9523
web2py.gluon.html.SCRIPT.tag
 
9524
web2py.gluon.html.SELECT.tag
 
9525
web2py.gluon.html.SPAN.tag
 
9526
web2py.gluon.html.STYLE.tag
 
9527
web2py.gluon.html.TABLE.tag
 
9528
web2py.gluon.html.TBODY.tag
 
9529
web2py.gluon.html.TD.tag
 
9530
web2py.gluon.html.TEXTAREA.tag
 
9531
web2py.gluon.html.TFOOT.tag
 
9532
web2py.gluon.html.TH.tag
 
9533
web2py.gluon.html.THEAD.tag
 
9534
web2py.gluon.html.TITLE.tag
 
9535
web2py.gluon.html.TR.tag
 
9536
web2py.gluon.html.TT.tag
 
9537
web2py.gluon.html.UL.tag
 
9538
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-581', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'tt'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'``%s``'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="web2py.gluon.sanitizer.XssCleaner.strip" class="py-name" href="#" onclick="return doclink('link-582', 'strip', 'link-142');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
9539
<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-583" class="py-name"><a title="web2py.gluon.html.A.tag
 
9540
web2py.gluon.html.B.tag
 
9541
web2py.gluon.html.BEAUTIFY.tag
 
9542
web2py.gluon.html.BODY.tag
 
9543
web2py.gluon.html.BR.tag
 
9544
web2py.gluon.html.BUTTON.tag
 
9545
web2py.gluon.html.CAT.tag
 
9546
web2py.gluon.html.CENTER.tag
 
9547
web2py.gluon.html.COL.tag
 
9548
web2py.gluon.html.COLGROUP.tag
 
9549
web2py.gluon.html.DIV.tag
 
9550
web2py.gluon.html.EM.tag
 
9551
web2py.gluon.html.EMBED.tag
 
9552
web2py.gluon.html.FIELDSET.tag
 
9553
web2py.gluon.html.FORM.tag
 
9554
web2py.gluon.html.H1.tag
 
9555
web2py.gluon.html.H2.tag
 
9556
web2py.gluon.html.H3.tag
 
9557
web2py.gluon.html.H4.tag
 
9558
web2py.gluon.html.H5.tag
 
9559
web2py.gluon.html.H6.tag
 
9560
web2py.gluon.html.HEAD.tag
 
9561
web2py.gluon.html.HR.tag
 
9562
web2py.gluon.html.HTML.tag
 
9563
web2py.gluon.html.I.tag
 
9564
web2py.gluon.html.IFRAME.tag
 
9565
web2py.gluon.html.IMG.tag
 
9566
web2py.gluon.html.INPUT.tag
 
9567
web2py.gluon.html.LABEL.tag
 
9568
web2py.gluon.html.LEGEND.tag
 
9569
web2py.gluon.html.LI.tag
 
9570
web2py.gluon.html.LINK.tag
 
9571
web2py.gluon.html.MENU.tag
 
9572
web2py.gluon.html.META.tag
 
9573
web2py.gluon.html.OBJECT.tag
 
9574
web2py.gluon.html.OL.tag
 
9575
web2py.gluon.html.OPTGROUP.tag
 
9576
web2py.gluon.html.OPTION.tag
 
9577
web2py.gluon.html.P.tag
 
9578
web2py.gluon.html.PRE.tag
 
9579
web2py.gluon.html.SCRIPT.tag
 
9580
web2py.gluon.html.SELECT.tag
 
9581
web2py.gluon.html.SPAN.tag
 
9582
web2py.gluon.html.STYLE.tag
 
9583
web2py.gluon.html.TABLE.tag
 
9584
web2py.gluon.html.TBODY.tag
 
9585
web2py.gluon.html.TD.tag
 
9586
web2py.gluon.html.TEXTAREA.tag
 
9587
web2py.gluon.html.TFOOT.tag
 
9588
web2py.gluon.html.TH.tag
 
9589
web2py.gluon.html.THEAD.tag
 
9590
web2py.gluon.html.TITLE.tag
 
9591
web2py.gluon.html.TR.tag
 
9592
web2py.gluon.html.TT.tag
 
9593
web2py.gluon.html.UL.tag
 
9594
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-583', 'tag', 'link-82');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'``\n%s``'</tt> <tt class="py-op">%</tt> <tt class="py-name">text</tt> </tt>
 
9595
<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-584" class="py-name"><a title="web2py.gluon.html.A.tag
 
9596
web2py.gluon.html.B.tag
 
9597
web2py.gluon.html.BEAUTIFY.tag
 
9598
web2py.gluon.html.BODY.tag
 
9599
web2py.gluon.html.BR.tag
 
9600
web2py.gluon.html.BUTTON.tag
 
9601
web2py.gluon.html.CAT.tag
 
9602
web2py.gluon.html.CENTER.tag
 
9603
web2py.gluon.html.COL.tag
 
9604
web2py.gluon.html.COLGROUP.tag
 
9605
web2py.gluon.html.DIV.tag
 
9606
web2py.gluon.html.EM.tag
 
9607
web2py.gluon.html.EMBED.tag
 
9608
web2py.gluon.html.FIELDSET.tag
 
9609
web2py.gluon.html.FORM.tag
 
9610
web2py.gluon.html.H1.tag
 
9611
web2py.gluon.html.H2.tag
 
9612
web2py.gluon.html.H3.tag
 
9613
web2py.gluon.html.H4.tag
 
9614
web2py.gluon.html.H5.tag
 
9615
web2py.gluon.html.H6.tag
 
9616
web2py.gluon.html.HEAD.tag
 
9617
web2py.gluon.html.HR.tag
 
9618
web2py.gluon.html.HTML.tag
 
9619
web2py.gluon.html.I.tag
 
9620
web2py.gluon.html.IFRAME.tag
 
9621
web2py.gluon.html.IMG.tag
 
9622
web2py.gluon.html.INPUT.tag
 
9623
web2py.gluon.html.LABEL.tag
 
9624
web2py.gluon.html.LEGEND.tag
 
9625
web2py.gluon.html.LI.tag
 
9626
web2py.gluon.html.LINK.tag
 
9627
web2py.gluon.html.MENU.tag
 
9628
web2py.gluon.html.META.tag
 
9629
web2py.gluon.html.OBJECT.tag
 
9630
web2py.gluon.html.OL.tag
 
9631
web2py.gluon.html.OPTGROUP.tag
 
9632
web2py.gluon.html.OPTION.tag
 
9633
web2py.gluon.html.P.tag
 
9634
web2py.gluon.html.PRE.tag
 
9635
web2py.gluon.html.SCRIPT.tag
 
9636
web2py.gluon.html.SELECT.tag
 
9637
web2py.gluon.html.SPAN.tag
 
9638
web2py.gluon.html.STYLE.tag
 
9639
web2py.gluon.html.TABLE.tag
 
9640
web2py.gluon.html.TBODY.tag
 
9641
web2py.gluon.html.TD.tag
 
9642
web2py.gluon.html.TEXTAREA.tag
 
9643
web2py.gluon.html.TFOOT.tag
 
9644
web2py.gluon.html.TH.tag
 
9645
web2py.gluon.html.THEAD.tag
 
9646
web2py.gluon.html.TITLE.tag
 
9647
web2py.gluon.html.TR.tag
 
9648
web2py.gluon.html.TT.tag
 
9649
web2py.gluon.html.UL.tag
 
9650
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-584', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[[%s %s]]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-585', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_href'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
9651
<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-586" class="py-name"><a title="web2py.gluon.html.A.tag
 
9652
web2py.gluon.html.B.tag
 
9653
web2py.gluon.html.BEAUTIFY.tag
 
9654
web2py.gluon.html.BODY.tag
 
9655
web2py.gluon.html.BR.tag
 
9656
web2py.gluon.html.BUTTON.tag
 
9657
web2py.gluon.html.CAT.tag
 
9658
web2py.gluon.html.CENTER.tag
 
9659
web2py.gluon.html.COL.tag
 
9660
web2py.gluon.html.COLGROUP.tag
 
9661
web2py.gluon.html.DIV.tag
 
9662
web2py.gluon.html.EM.tag
 
9663
web2py.gluon.html.EMBED.tag
 
9664
web2py.gluon.html.FIELDSET.tag
 
9665
web2py.gluon.html.FORM.tag
 
9666
web2py.gluon.html.H1.tag
 
9667
web2py.gluon.html.H2.tag
 
9668
web2py.gluon.html.H3.tag
 
9669
web2py.gluon.html.H4.tag
 
9670
web2py.gluon.html.H5.tag
 
9671
web2py.gluon.html.H6.tag
 
9672
web2py.gluon.html.HEAD.tag
 
9673
web2py.gluon.html.HR.tag
 
9674
web2py.gluon.html.HTML.tag
 
9675
web2py.gluon.html.I.tag
 
9676
web2py.gluon.html.IFRAME.tag
 
9677
web2py.gluon.html.IMG.tag
 
9678
web2py.gluon.html.INPUT.tag
 
9679
web2py.gluon.html.LABEL.tag
 
9680
web2py.gluon.html.LEGEND.tag
 
9681
web2py.gluon.html.LI.tag
 
9682
web2py.gluon.html.LINK.tag
 
9683
web2py.gluon.html.MENU.tag
 
9684
web2py.gluon.html.META.tag
 
9685
web2py.gluon.html.OBJECT.tag
 
9686
web2py.gluon.html.OL.tag
 
9687
web2py.gluon.html.OPTGROUP.tag
 
9688
web2py.gluon.html.OPTION.tag
 
9689
web2py.gluon.html.P.tag
 
9690
web2py.gluon.html.PRE.tag
 
9691
web2py.gluon.html.SCRIPT.tag
 
9692
web2py.gluon.html.SELECT.tag
 
9693
web2py.gluon.html.SPAN.tag
 
9694
web2py.gluon.html.STYLE.tag
 
9695
web2py.gluon.html.TABLE.tag
 
9696
web2py.gluon.html.TBODY.tag
 
9697
web2py.gluon.html.TD.tag
 
9698
web2py.gluon.html.TEXTAREA.tag
 
9699
web2py.gluon.html.TFOOT.tag
 
9700
web2py.gluon.html.TH.tag
 
9701
web2py.gluon.html.THEAD.tag
 
9702
web2py.gluon.html.TITLE.tag
 
9703
web2py.gluon.html.TR.tag
 
9704
web2py.gluon.html.TT.tag
 
9705
web2py.gluon.html.UL.tag
 
9706
web2py.gluon.html.XHTML.tag" class="py-name" href="#" onclick="return doclink('link-586', 'tag', 'link-82');">tag</a></tt><tt class="py-op">==</tt><tt class="py-string">'img'</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-string">'[[%s %s left]]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-587', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_alt'</tt><tt class="py-op">,</tt><tt class="py-string">'no title'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="web2py.gluon.dal.Reference.get" class="py-name" href="#" onclick="return doclink('link-588', 'get', 'link-281');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'_src'</tt><tt class="py-op">,</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
9707
<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">text</tt> </tt>
 
9708
</div><a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line"> </tt>
 
9709
<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line"> </tt>
 
9710
<a name="MARKMIN"></a><div id="MARKMIN-def"><a name="L2248"></a><tt class="py-lineno">2248</tt> <a class="py-toggle" href="#" id="MARKMIN-toggle" onclick="return toggle('MARKMIN');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html">MARKMIN</a><tt class="py-op">(</tt><tt class="py-base-class">XmlComponent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9711
</div><div id="MARKMIN-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MARKMIN-expanded"><a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
9712
<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line"><tt class="py-docstring">    For documentation: http://web2py.com/examples/static/markmin.html</tt> </tt>
 
9713
<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
9714
<a name="MARKMIN.__init__"></a><div id="MARKMIN.__init__-def"><a name="L2252"></a><tt class="py-lineno">2252</tt> <a class="py-toggle" href="#" id="MARKMIN.__init__-toggle" onclick="return toggle('MARKMIN.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">extra</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">allowed</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">sep</tt><tt class="py-op">=</tt><tt class="py-string">'p'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9715
</div><div id="MARKMIN.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.__init__-expanded"><a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
 
9716
<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-name">extra</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
9717
<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed</tt> <tt class="py-op">=</tt> <tt class="py-name">allowed</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 
9718
<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt> <tt class="py-op">=</tt> <tt class="py-name">sep</tt> </tt>
 
9719
</div><a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line"> </tt>
 
9720
<a name="MARKMIN.xml"></a><div id="MARKMIN.xml-def"><a name="L2258"></a><tt class="py-lineno">2258</tt> <a class="py-toggle" href="#" id="MARKMIN.xml-toggle" onclick="return toggle('MARKMIN.xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#xml">xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9721
</div><div id="MARKMIN.xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.xml-expanded"><a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
9722
<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line"><tt class="py-docstring">        calls the gluon.contrib.markmin render function to convert the wiki syntax</tt> </tt>
 
9723
<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
9724
<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-589" class="py-name"><a title="web2py.gluon.globals.Response.render
 
9725
web2py.gluon.template.render" class="py-name" href="#" onclick="return doclink('link-589', 'render', 'link-4');">render</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">,</tt><tt class="py-name">extra</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extra</tt><tt class="py-op">,</tt><tt class="py-name">allowed</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">allowed</tt><tt class="py-op">,</tt><tt class="py-name">sep</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> </tt>
 
9726
</div><a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"> </tt>
 
9727
<a name="MARKMIN.__str__"></a><div id="MARKMIN.__str__-def"><a name="L2264"></a><tt class="py-lineno">2264</tt> <a class="py-toggle" href="#" id="MARKMIN.__str__-toggle" onclick="return toggle('MARKMIN.__str__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9728
</div><div id="MARKMIN.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.__str__-expanded"><a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-590" class="py-name"><a title="web2py.gluon.dal.Rows.xml
9643
9729
web2py.gluon.html.A.xml
9644
9730
web2py.gluon.html.CODE.xml
9645
9731
web2py.gluon.html.DIV.xml
9657
9743
web2py.gluon.languages.lazyT.xml
9658
9744
web2py.gluon.serializers.xml
9659
9745
web2py.gluon.tools.Recaptcha.xml
9660
 
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-586', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
9661
 
</div><a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line"> </tt>
9662
 
<a name="MARKMIN.flatten"></a><div id="MARKMIN.flatten-def"><a name="L2222"></a><tt class="py-lineno">2222</tt> <a class="py-toggle" href="#" id="MARKMIN.flatten-toggle" onclick="return toggle('MARKMIN.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9663
 
</div><div id="MARKMIN.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.flatten-expanded"><a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
9664
 
<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the MARKMIN object rendered by the render function</tt> </tt>
9665
 
<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
9666
 
<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
9667
 
</div><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line"> </tt>
9668
 
<a name="MARKMIN.elements"></a><div id="MARKMIN.elements-def"><a name="L2228"></a><tt class="py-lineno">2228</tt> <a class="py-toggle" href="#" id="MARKMIN.elements-toggle" onclick="return toggle('MARKMIN.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
9669
 
</div><div id="MARKMIN.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.elements-expanded"><a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
9670
 
<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line"><tt class="py-docstring">        to be considered experimental since the behavior of this method is questionable</tt> </tt>
9671
 
<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line"><tt class="py-docstring">        another options could be TAG(self.text).elements(*args,**kargs)</tt> </tt>
9672
 
<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
9673
 
<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">]</tt> </tt>
9674
 
</div></div><a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line"> </tt>
9675
 
<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line"> </tt>
9676
 
<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
9677
 
<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">doctest</tt> </tt>
9678
 
<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">    <tt class="py-name">doctest</tt><tt class="py-op">.</tt><tt class="py-name">testmod</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
9679
 
<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 
9746
web2py.gluon.tools.Service.xml" class="py-name" href="#" onclick="return doclink('link-590', 'xml', 'link-15');">xml</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
9747
</div><a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line"> </tt>
 
9748
<a name="MARKMIN.flatten"></a><div id="MARKMIN.flatten-def"><a name="L2267"></a><tt class="py-lineno">2267</tt> <a class="py-toggle" href="#" id="MARKMIN.flatten-toggle" onclick="return toggle('MARKMIN.flatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#flatten">flatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">render</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9749
</div><div id="MARKMIN.flatten-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.flatten-expanded"><a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
9750
<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line"><tt class="py-docstring">        return the text stored by the MARKMIN object rendered by the render function</tt> </tt>
 
9751
<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
9752
<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
 
9753
</div><a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line"> </tt>
 
9754
<a name="MARKMIN.elements"></a><div id="MARKMIN.elements-def"><a name="L2273"></a><tt class="py-lineno">2273</tt> <a class="py-toggle" href="#" id="MARKMIN.elements-toggle" onclick="return toggle('MARKMIN.elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="web2py.gluon.html.MARKMIN-class.html#elements">elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
9755
</div><div id="MARKMIN.elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="MARKMIN.elements-expanded"><a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
 
9756
<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line"><tt class="py-docstring">        to be considered experimental since the behavior of this method is questionable</tt> </tt>
 
9757
<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line"><tt class="py-docstring">        another options could be TAG(self.text).elements(*args,**kargs)</tt> </tt>
 
9758
<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 
9759
<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">]</tt> </tt>
 
9760
</div></div><a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line"> </tt>
 
9761
<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line"> </tt>
 
9762
<a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
 
9763
<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">doctest</tt> </tt>
 
9764
<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">    <tt class="py-name">doctest</tt><tt class="py-op">.</tt><tt class="py-name">testmod</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
9765
<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line"> </tt><script type="text/javascript">
9680
9766
<!--
9681
9767
expandto(location.href);
9682
9768
// -->
9714
9800
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
9715
9801
  <tr>
9716
9802
    <td align="left" class="footer">
9717
 
    Generated by Epydoc 3.0beta1 on Thu Aug  4 00:47:09 2011
 
9803
    Generated by Epydoc 3.0beta1 on Mon Sep 26 06:55:26 2011
9718
9804
    </td>
9719
9805
    <td align="right" class="footer">
9720
9806
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>