Merge lp:~timmie/web2py/web2py-appdocu into lp:~mdipierro/web2py/devel

Proposed by Timmie
Status: Needs review
Proposed branch: lp:~timmie/web2py/web2py-appdocu
Merge into: lp:~mdipierro/web2py/devel
Diff against target: None lines
To merge this branch: bzr merge lp:~timmie/web2py/web2py-appdocu
Reviewer Review Type Date Requested Status
yarko letting you know... Pending
Review via email: mp+6441@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Timmie (timmie) wrote :

please see mail on the google group

Revision history for this message
yarko (yarkot) wrote :

> please see mail on the google group

I think this needs to be looked over, but I need a chance to finish the base / gluon docs and docstrings and build changes; it may affect this. I'd like Massimo to look in the same order if possible, for the same reason.

When I've finished mine, given to Massimo to merge for 1.62 release, I'll look at what you have, try it out.

Also, please see my reply in google group.

Regards,
Yarko

Revision history for this message
Timmie (timmie) wrote :

> I think this needs to be looked over, but I need a chance to finish the base / gluon docs and docstrings and build changes; it may affect this. I'd like Massimo to look in the same order if possible, for the same reason.
Of course. How you like it.
I think my and your things are very complementary and do not overlap.
I just had these ideas in mind and wanted to try out.
Anyway, it's there. I will use it for my app(s).

> When I've finished mine, given to Massimo to merge for 1.62 release, I'll look at what you have, try it out.
Yes, the next release shall feature the sphinx docs for the main
program. The developers shall get a habit to write good docstrings as
soon as posible...

Revision history for this message
yarko (yarkot) wrote :

On Mon, May 11, 2009 at 5:06 PM, Tim <email address hidden> wrote:

> > I think this needs to be looked over, but I need a chance to finish the
> base / gluon docs and docstrings and build changes; it may affect this.
> I'd like Massimo to look in the same order if possible, for the same reason.
> Of course. How you like it.

First, Tim - let me say how much I appreciate all you have done (a lot);
it's really great - thank you. Second, mother's day yesterday ... and my
85 year old mother ... that and my ubuntu installations which somehow
overwrote my work (Windows PC) Boot Block... these things took away my
weekend, so - with all your great work I feel a little scared that I'm too
slow! :-)

>
> I think my and your things are very complementary and do not overlap.

I agree - we see very much the same thing; the overlap I see: I want
standards on docstrings (so want to be sure that merges --- numpy is great,
and 98% of what we need, but I want it "web2py" documented and specific...
 tonight i will finish, since ... like I said, numpy doc is really good.).

Build: I put links, makefile, etc. in place - you are using scripts, and
python-ish (now).... I think this could potentially be a little different,
but I don't know yet.

> I just had these ideas in mind and wanted to try out.
> Anyway, it's there. I will use it for my app(s).

Great - I will look tomorrow in detail (tonight I have to finish what I
promised i would finish Sat, but didn't!)

> > When I've finished mine, given to Massimo to merge for 1.62 release, I'll
> look at what you have, try it out.
> Yes, the next release shall feature the sphinx docs for the main
> program. The developers shall get a habit to write good docstrings as
> soon as posible...

I assume so (I haven't heard anything).

Revision history for this message
Timmie (timmie) wrote :

> First, Tim - let me say how much I appreciate all you have done (a lot);
> it's really great - thank you. Second, mother's day yesterday ... and my
> 85 year old mother ... that and my ubuntu installations which somehow
> overwrote my work (Windows PC) Boot Block... these things took away my
> weekend, so - with all your great work I feel a little scared that I'm too
> slow! :-)
Sorry for the inconvenience caused by your PC.
I was also away on the weekend. So no worry, no obligations, no stress.
Life has many aspects...

> > I think my and your things are very complementary and do not overlap.
> I agree - we see very much the same thing; the overlap I see: I want
> standards on docstrings (so want to be sure that merges --- numpy is
> great,
> and 98% of what we need, but I want it "web2py" documented and specific...
> tonight i will finish, since ... like I said, numpy doc is really good.).
That's true.
I was 1) no sure whether you guys will even accept the rather severe numpy
standard, 2) just without time to adapt.
But everything written now with numpy standard will at not produce errors with Sphinx.

> Build: I put links, makefile, etc. in place - you are using scripts, and
> python-ish (now).... I think this could potentially be a little different,
> but I don't know yet.
I would prefer python-ish style makes.
Putting another dependecy to have a make system will put a burden on users of
windows and mobile systems.
There are tons of scripts for that at pypi
http://pypi.python.org/pypi?%3Aaction=search&term=make&submit=search
I do not knwo scons and stuff. I hope to learn from you how to use these make
scripts. There's also paver: http://www.blueskyonmars.com/projects/paver/
But exepct sphinx we should not include further requirements.

> Great - I will look tomorrow in detail (tonight I have to finish what I
> promised i would finish Sat, but didn't!)
Remember, no pressure.

I tried out your yesterday, but couldn't find any changes...
The Olive-GTK on Ubuntu pc does not really work...

Regards,
Timmie
--
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a

lp:~timmie/web2py/web2py-appdocu updated
776. By Timmie

some additions to the doc overview

777. By Timmie

added latest slides and more blogs

Unmerged revisions

777. By Timmie

added latest slides and more blogs

776. By Timmie

some additions to the doc overview

775. By Timmie

Updates and changes:
* a modified welcome app with documentation accessible through the admin
* python based makefile for app docs (also adapted admin default.py)
* admin about has new field for VERSION of the app which is used by sphinx conf.py
* examples/docs.html: included link to Sphinx docs
* a missing file was added to web2py/docs/sources (doc/source/docs_overview.rst)
* app docs linked from admin/site
* app docs are linked to Sphinx objects inv: see http://127.0.0.1:8000/welcome_modif/static/doc_build/controllers.html

=> recommend you review with directroy based diff with a GUI diff tool!!!

Docs todo
* better integration of Sphinx build into web2py (backlink to admin /examples)
* build docs for web2py & apps from admin

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file ' app-sphinx.log'
2--- app-sphinx.log 1970-01-01 00:00:00 +0000
3+++ app-sphinx.log 2009-05-11 19:38:38 +0000
4@@ -0,0 +1,2 @@
5+/var/devel_linux/web2py/web2py_app-doc/applications/welcome_modif/controllers/default.py:docstring of controllers.default.call:4: (ERROR/3) Unexpected indentation.
6+/var/devel_linux/web2py/web2py_app-doc/applications/welcome_modif/controllers/default.py:docstring of controllers.default.user:13: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
7
8=== added file 'app-sphinx.log'
9--- app-sphinx.log 1970-01-01 00:00:00 +0000
10+++ app-sphinx.log 2009-05-11 19:38:38 +0000
11@@ -0,0 +1,62 @@
12+/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst:: (WARNING/2) Duplicate explicit target name: "web2py wiki".
13+/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst:14: (WARNING/2) Inline interpreted text or phrase reference start-string without end-string.
14+/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst:29: (WARNING/2) Inline literal start-string without end-string.
15+/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst:21: (ERROR/3) Unknown target name: "http://web2pychat.com".
16+/var/devel_linux/web2py/web2py_app-doc/gluon/validators.py:docstring of gluon.validators.IS_URL:9: (WARNING/2) Definition list ends without a blank line; unexpected unindent.
17+/var/devel_linux/web2py/web2py_app-doc/gluon/validators.py:docstring of gluon.validators.IS_ALPHANUMERIC:3: (ERROR/3) Unexpected indentation.
18+/var/devel_linux/web2py/web2py_app-doc/gluon/validators.py:docstring of gluon.validators.IS_URL:20: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
19+/var/devel_linux/web2py/web2py_app-doc/gluon/sql.py:docstring of gluon.sql:6: (ERROR/3) Unexpected indentation.
20+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:13: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
21+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.CherryPyWSGIServer:16: (WARNING/2) Definition list ends without a blank line; unexpected unindent.
22+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:15: (ERROR/3) Unexpected indentation.
23+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.CherryPyWSGIServer:19: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
24+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:18: (ERROR/3) Unexpected indentation.
25+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.CherryPyWSGIServer:22: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
26+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:7: (ERROR/3) Unexpected indentation.
27+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:14: (ERROR/3) Unexpected indentation.
28+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver:23: (ERROR/3) Unexpected indentation.
29+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.HTTPRequest:29: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
30+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.SSLConnection:5: (WARNING/2) Inline emphasis start-string without end-string.
31+/var/devel_linux/web2py/web2py_app-doc/gluon/wsgiserver.py:docstring of gluon.wsgiserver.SSLConnection:5: (WARNING/2) Inline emphasis start-string without end-string.
32+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:81: (WARNING/2) autodoc can't import/find module 'gluon.winservice', it reported error: "No module named win32serviceutil", please check your spelling and sys.path
33+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.BooleanWidget: class BooleanWidget has no attribute '__init__'
34+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.DateWidget: class DateWidget has no attribute '__init__'
35+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.DatetimeWidget: class DatetimeWidget has no attribute '__init__'
36+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.DoubleWidget: class DoubleWidget has no attribute '__init__'
37+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.IntegerWidget: class IntegerWidget has no attribute '__init__'
38+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.MultipleOptionsWidget: class MultipleOptionsWidget has no attribute '__init__'
39+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.OptionsWidget: class OptionsWidget has no attribute '__init__'
40+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.PasswordWidget: class PasswordWidget has no attribute '__init__'
41+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.StringWidget: class StringWidget has no attribute '__init__'
42+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.TextWidget: class TextWidget has no attribute '__init__'
43+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.TimeWidget: class TimeWidget has no attribute '__init__'
44+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:105: (WARNING/2) error while formatting signature for gluon.sqlhtml.UploadWidget: class UploadWidget has no attribute '__init__'
45+<autodoc>:0: (ERROR/3) Unexpected indentation.
46+/var/devel_linux/web2py/web2py_app-doc/gluon/sqlhtml.py:docstring of gluon.sqlhtml.SQLFORM:12: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
47+<autodoc>:0: (ERROR/3) Unexpected indentation.
48+/var/devel_linux/web2py/web2py_app-doc/gluon/sqlhtml.py:docstring of gluon.sqlhtml.SQLFORM:19: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
49+:0: (ERROR/3) Unexpected indentation.
50+/var/devel_linux/web2py/web2py_app-doc/gluon/sqlhtml.py:docstring of gluon.sqlhtml.SQLTABLE:13: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
51+<autodoc>:0: (ERROR/3) Unexpected indentation.
52+/var/devel_linux/web2py/web2py_app-doc/gluon/html.py:docstring of gluon.html.TEXTAREA:3: (WARNING/2) Inline emphasis start-string without end-string.
53+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.rst:217: (WARNING/2) missing attribute mentioned in :members: or __all__: module gluon.contenttype, attribute contentype
54+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.compat.rst:9: (WARNING/2) autodoc can't import/find module 'gluon.compat.uuid', it reported error: "No module named compat.uuid", please check your spelling and sys.path
55+<autodoc>:0: (ERROR/3) Unexpected indentation.
56+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst:52: (WARNING/2) autodoc can't import/find module 'gluon.contrib.taskbar_widget', it reported error: "No module named win32con", please check your spelling and sys.path
57+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst:68: (WARNING/2) autodoc can't import/find module 'gluon.contrib.gae_memcache', it reported error: "No module named google.appengine.api.memcache", please check your spelling and sys.path
58+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst:76: (WARNING/2) autodoc can't import/find module 'gluon.contrib.gql', it reported error: "No module named google.appengine.ext", please check your spelling and sys.path
59+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/markdown/markdown2.py:docstring of gluon.contrib.markdown.markdown2:9: (ERROR/3) Unexpected indentation.
60+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache.Client:9: (WARNING/2) Enumerated list ends without a blank line; unexpected unindent.
61+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache:17: (ERROR/3) Unexpected indentation.
62+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache:31: (ERROR/3) Unexpected indentation.
63+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache.Client.get_multi:35: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
64+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache:17: (ERROR/3) Unexpected indentation.
65+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache:4: (ERROR/3) Unexpected indentation.
66+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache.Client.set_servers:8: (WARNING/2) Enumerated list ends without a blank line; unexpected unindent.
67+/var/devel_linux/web2py/web2py_app-doc/gluon/contrib/memcache/memcache.py:docstring of gluon.contrib.memcache.memcache.Client.get_multi:213: (ERROR/3) Unknown target name: "pfx".
68+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:9: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Elements.LINE: class LINE has no attribute '__init__'
69+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:9: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Elements.TAB: class TAB has no attribute '__init__'
70+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:41: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Constants.Languages: class Languages has no attribute '__init__'
71+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:41: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Constants.ViewKind: class ViewKind has no attribute '__init__'
72+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:41: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Constants.ViewScale: class ViewScale has no attribute '__init__'
73+/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.pyrtf.rst:41: (WARNING/2) error while formatting signature for gluon.contrib.pyrtf.Constants.ViewZoomKind: class ViewZoomKind has no attribute '__init__'
74
75=== modified file 'applications/admin/controllers/default.py'
76--- applications/admin/controllers/default.py 2009-05-08 18:19:50 +0000
77+++ applications/admin/controllers/default.py 2009-05-11 19:38:38 +0000
78@@ -1,4 +1,5 @@
79 from gluon.admin import *
80+import os
81
82 def index():
83 """ Index handler """
84@@ -490,11 +491,23 @@
85
86 # ## check if file is not there
87 about = open(apath('%s/ABOUT' % app), 'r').read()
88+ # version: used by Sphinxs
89+ version = open(apath('%s/VERSION' % app), 'r').read()
90 license = open(apath('%s/LICENSE' % app), 'r').read()
91
92- return dict(app=app, about=WIKI(about), license=WIKI(license))
93-
94-
95+ return dict(app=app, about=WIKI(about), version=WIKI(about),
96+ license=WIKI(license))
97+
98+def app_doc_build():
99+ import subprocess
100+ app = request.args[0]
101+
102+ doc_source = os.path.join('applications', app, 'doc')
103+ p = subprocess.call(['python', 'doc_source' + 'make.py'])
104+
105+ response.flash = "docs build in app static dir"
106+
107+
108 def design():
109 """ Application design handler """
110
111
112=== modified file 'applications/admin/views/default/about.html'
113--- applications/admin/views/default/about.html 2009-05-07 16:00:02 +0000
114+++ applications/admin/views/default/about.html 2009-05-11 19:38:38 +0000
115@@ -3,6 +3,9 @@
116 <h2>{{=T("About")}} {{=app}}</h2>
117 [ {{=A(T('edit'),_href=URL(r=request,f='edit/%s/ABOUT' % (app)))}} ]
118 <p>{{=about}}</p>
119+<h2>Version {{=app}}</h2>
120+[ {{=A('edit',_href=URL(r=request,f='edit/%s/VERSION' % (app)))}} ]
121+<p>{{=version}}</p>
122 <h2>{{=T('License for')}} {{=app}}</h2>
123 [ {{=A(T('edit'),_href=URL(r=request,f='edit/%s/LICENSE' % (app)))}} ]
124 <p>{{=license}}</p>
125
126=== modified file 'applications/admin/views/default/site.html'
127--- applications/admin/views/default/site.html 2009-05-11 05:03:27 +0000
128+++ applications/admin/views/default/site.html 2009-05-11 19:38:38 +0000
129@@ -16,6 +16,10 @@
130 {{pass}}
131 <a href="{{=URL(r=request,f='about',args=a)}}">{{=T("about")}}</a> |
132 {{pass}}
133+<a href="{{=URL(r=request, f='app_doc_build', args=a)}}">{{=T("build app docs")}}</a> |
134+{{pass}}
135+<a href="{{=URL(a=a, r=request, c='static',f='doc_build/index.html')}}">{{=T("show app docs")}}</a> |
136+{{pass}}
137 <a href="{{=URL(r=request,f='errors',args=a)}}">{{=T("errors")}}</a> |
138 <a href="{{=URL(r=request,f='cleanup',args=a)}}">{{=T("clean")}}</a> |
139 <a href="{{=URL(r=request,f='pack',args=a)}}">{{=T("pack all")}}</a> |
140
141=== added directory 'applications/examples/static/sphinx'
142=== added file 'applications/examples/static/sphinx/.buildinfo'
143--- applications/examples/static/sphinx/.buildinfo 1970-01-01 00:00:00 +0000
144+++ applications/examples/static/sphinx/.buildinfo 2009-05-11 19:38:38 +0000
145@@ -0,0 +1,4 @@
146+# Sphinx build info version 1
147+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
148+config:
149+tags:
150
151=== added directory 'applications/examples/static/sphinx/.doctrees'
152=== added file 'applications/examples/static/sphinx/.doctrees/docs_contrib.doctree'
153Binary files applications/examples/static/sphinx/.doctrees/docs_contrib.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/docs_contrib.doctree 2009-05-11 19:38:38 +0000 differ
154=== added file 'applications/examples/static/sphinx/.doctrees/docs_overview.doctree'
155Binary files applications/examples/static/sphinx/.doctrees/docs_overview.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/docs_overview.doctree 2009-05-11 19:38:38 +0000 differ
156=== added file 'applications/examples/static/sphinx/.doctrees/environment.pickle'
157Binary files applications/examples/static/sphinx/.doctrees/environment.pickle 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/environment.pickle 2009-05-11 19:38:38 +0000 differ
158=== added file 'applications/examples/static/sphinx/.doctrees/faq.doctree'
159Binary files applications/examples/static/sphinx/.doctrees/faq.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/faq.doctree 2009-05-11 19:38:38 +0000 differ
160=== added file 'applications/examples/static/sphinx/.doctrees/glossary.doctree'
161Binary files applications/examples/static/sphinx/.doctrees/glossary.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/glossary.doctree 2009-05-11 19:38:38 +0000 differ
162=== added directory 'applications/examples/static/sphinx/.doctrees/gluon'
163=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.compat.doctree'
164Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.compat.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.compat.doctree 2009-05-11 19:38:38 +0000 differ
165=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.doctree'
166Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.doctree 2009-05-11 19:38:38 +0000 differ
167=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.gateways.doctree'
168Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.gateways.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.gateways.doctree 2009-05-11 19:38:38 +0000 differ
169=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.markdown.doctree'
170Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.markdown.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.markdown.doctree 2009-05-11 19:38:38 +0000 differ
171=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.memcache.doctree'
172Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.memcache.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.memcache.doctree 2009-05-11 19:38:38 +0000 differ
173=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.pyrtf.doctree'
174Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.pyrtf.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.pyrtf.doctree 2009-05-11 19:38:38 +0000 differ
175=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.simplejson.doctree'
176Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.simplejson.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.contrib.simplejson.doctree 2009-05-11 19:38:38 +0000 differ
177=== added file 'applications/examples/static/sphinx/.doctrees/gluon/gluon.doctree'
178Binary files applications/examples/static/sphinx/.doctrees/gluon/gluon.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/gluon/gluon.doctree 2009-05-11 19:38:38 +0000 differ
179=== added file 'applications/examples/static/sphinx/.doctrees/index.doctree'
180Binary files applications/examples/static/sphinx/.doctrees/index.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/index.doctree 2009-05-11 19:38:38 +0000 differ
181=== added file 'applications/examples/static/sphinx/.doctrees/modules.doctree'
182Binary files applications/examples/static/sphinx/.doctrees/modules.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/modules.doctree 2009-05-11 19:38:38 +0000 differ
183=== added file 'applications/examples/static/sphinx/.doctrees/user_wiki.doctree'
184Binary files applications/examples/static/sphinx/.doctrees/user_wiki.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/user_wiki.doctree 2009-05-11 19:38:38 +0000 differ
185=== added file 'applications/examples/static/sphinx/.doctrees/web2py_todo.doctree'
186Binary files applications/examples/static/sphinx/.doctrees/web2py_todo.doctree 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/.doctrees/web2py_todo.doctree 2009-05-11 19:38:38 +0000 differ
187=== added directory 'applications/examples/static/sphinx/_sources'
188=== added file 'applications/examples/static/sphinx/_sources/docs_contrib.txt'
189--- applications/examples/static/sphinx/_sources/docs_contrib.txt 1970-01-01 00:00:00 +0000
190+++ applications/examples/static/sphinx/_sources/docs_contrib.txt 2009-05-11 19:38:38 +0000
191@@ -0,0 +1,100 @@
192+**********************************
193+Introduction for documenting
194+**********************************
195+
196+.. rubric:: Some hints on writing documentation with Sphinx for web2py
197+
198+Writing documentation
199+========================
200+
201+official documentation
202+----------------------------------
203+
204+* `Sphinx <http://sphinx.pocoo.org/contents.html>`_
205+
206+Docstrings
207+------------------------
208+* official python standard
209+ * `Docstring Conventions <http://www.python.org/dev/peps/pep-0257>`_
210+ * `Documenting Python <http://docs.python.org/dev/documenting/index.html>`_
211+* numpy standard
212+ * `documentation standard <http://projects.scipy.org/scipy/numpy/wiki/CodingStyleGuidelines#docstring-standard>`_
213+ * `Example file <http://projects.scipy.org/numpy/browser/trunk/doc/example.py>`_
214+ * `Docstring Template <http://projects.scipy.org/numpy/browser/trunk/doc/EXAMPLE_DOCSTRING.txt>`_
215+ If you use `Eclipse / Pydev <http://pydev.sourceforge.net/>`_ you can define this piece as template.
216+
217+Helpers
218+------------------------
219+
220+Editors
221+________________________
222+* `Emacs: see docutils page <http://docutils.sourceforge.net/docs/user/emacs.html>`_
223+* `Gedit (Linux) <http://textmethod.com/wiki/ReStructuredTextToolsForGedit>`_
224+* `Ulipad (Win) <http://code.google.com/p/ulipad>`_
225+
226+Others
227+________________________
228+
229+* creating tables in ReST can be painful. Here is a module that can help::
230+
231+ easy_install prettytable
232+ import prettytable as pt
233+ mytable =pt.PrettyTable(["id", "category", "recipie"])
234+ print mytable # copy & paste this into your ReST document!
235+ mytable_string = mytable.get_string() # or insert this string when
236+ generating automatic documents
237+
238+
239+Building documentation
240+========================
241+Follow these steps:
242+
243+#. easy_install -U sphinx
244+#. built with custom make files for web2py => **Note: we could create a
245+ cross-platform python script for this!**
246+
247+ #. unix-like: ``sh doc/make-doc_html.sh``
248+ #. windows: ``doc\make-doc_html.bat``
249+
250+ Due to the special manner of the *web2py* import mechanism it requires that
251+ the doc is built from the *web2py* root directory.
252+
253+#. the result will written to: ``web2py/applications/examples/static/sphinx``
254+ (the target directory will be automatically created)
255+#. inspect any error
256+ #. on the :term:`CLI`: see the errors and warnings floating on
257+ ``stderr``/``stdout``
258+ #. using the above mentioned make files a log file will be written to
259+ ``web2py/doc/sphinx-build.log``
260+
261+Contributing
262+========================
263+
264+.. warning:: Please ask on the
265+ `Mailinglist <http://groups.google.com/group/web2py>`_ before
266+ commiting or pushing to the repositories.
267+
268+ So far, it has not been agreed on a proper setup to mutually
269+ edit the documentation and especially how to correct the
270+ docstrings without getting to many :term:`DVCS` conflicts.
271+
272+#. branch the web2py Sphinx code::
273+
274+ bzr branch lp:~web2py/web2py/web2py-sphinx
275+ cd web2py-sphinx
276+
277+#. pull the latest code from web2py Sphinx branch::
278+
279+ bzr pull
280+
281+#. pull latest web2py development version::
282+
283+ bzr pull http://bazaar.launchpad.net/~mdipierro/web2py/devel/
284+
285+#. change and edit the documents or docstrings with your edior
286+
287+#. push the changes to the web2py Sphinx branch::
288+
289+ bzr push lp:~web2py/web2py/web2py-sphinx
290+
291+ This requires that you are a member of the `web2py team at Launchpad <https://launchpad.net/~web2py>`_ and registered at Launchpad `with your SSA keys <https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair>`_. You can find more info on the `Launchpad help page <https://help.launchpad.net/Code/UploadingABranch>`_
292
293=== added file 'applications/examples/static/sphinx/_sources/docs_overview.txt'
294--- applications/examples/static/sphinx/_sources/docs_overview.txt 1970-01-01 00:00:00 +0000
295+++ applications/examples/static/sphinx/_sources/docs_overview.txt 2009-05-11 19:38:38 +0000
296@@ -0,0 +1,50 @@
297+***************************
298+Documentation Overview
299+***************************
300+
301+official
302+=========
303+* `Link text <http://target>`_
304+* `web2py built-in documentation (local) <http://127.0.0.1:port/examples/default/docs>`_
305+* `web2py site <http://web2py.com>`_
306+* `web2py wiki <https://mdp.cti.depaul.edu/wiki>`_
307+* Wiki
308+ * `User <https://mdp.cti.depaul.edu/wiki>`_
309+ * `Web2Py Wiki <https://mdp.cti.depaul.edu/web2py_wiki>`_
310+* `Mailinglist <http://groups.google.com/group/web2py>`_s
311+* Manual
312+ * `web2py pdf manual from lulu.com <http://tinyurl.com/web2py-pdf-manual>`_
313+ * `web2py book (same as pdf but hard bound from amazon) <http://tinyurl.com/web2py-book>`_
314+* `AlterEgo (FAQ) <http://www.web2py.com/AlterEgo>`_
315+* IRC (chat), web2py IRC archive: see link in channel topic:
316+ * with your own client: #web2py
317+ * via web interface: `http://web2pychat.com`_
318+* `Training videos <http://vimeo.com/videos/search:web2py>`_
319+* `sphinx documentation <http://127.0.0.1:8000/applications/examples/static/sphinx/html/index.html>`_
320+* web2py source - download and inspect the source code:
321+ * `Current release <http://mdp.cti.depaul.edu/examples/static/web2py_src.zip>`_
322+ * Development release:
323+ * Subversion (svn): ``svn co `http://web2py.googlecode.com/svn/trunk/`_ web2py-devel``
324+ * Bazaar (bzr): ``bzr branch lp:~mdipierro/web2py/devel web2py-devel``
325+ * Mercurial (hg): ``hg clone `http://bitbucket.org/douglas/web2py/`_`
326+* `Professional support <http://web2py.com/examples/default/support>`_
327+* Plugins
328+ * `T2 (fading out) <http://www.vimeo.com/1790354>`_
329+ * `T3 video1 <http://www.vimeo.com/2450936>`_, `T3 video2 <http://www.vimeo.com/2462041>`_
330+* Tutorials
331+ * Cookbook
332* Pycon 2009
333+ * Dojo: `source code for the web2py Dojo (in PDF form ;-( ) <http://mdp.cti.depaul.edu/examples/static/dojo.pdf>`_
334+ * `ORM Panel w/ Massimo representing web2py DAL <http://blip.tv/file/1949388/>`_
335+* `web2py - who is using it? <http://appliedstacks.com/NewestFirst/web2py>`_
336+* `Code metrics <http://www.ohloh.net/p/web2py>`_
337+
338+Howtos
339+==========
340+
341+insert here a link to the docs from the wiki
342+
343+User contributed
344+=========================
345+* `web2py in Google App Engine Notes <http://www.futurelogic.com>`_
346+* Blogs
347+ * `Ramblings (web2py category) <http://michaelangela.wordpress.com/category/dev/python/web2py/>`_
348
349=== added file 'applications/examples/static/sphinx/_sources/faq.txt'
350--- applications/examples/static/sphinx/_sources/faq.txt 1970-01-01 00:00:00 +0000
351+++ applications/examples/static/sphinx/_sources/faq.txt 2009-05-11 19:38:38 +0000
352@@ -0,0 +1,9 @@
353+Frequently Asked Questions (FAQ)
354+==================================
355+
356+.. rubric:: The pages from the `AlterEgo <http://www.web2py.com/AlterEgo>`_
357+
358+.. note:: These pages are extracted as plain and not yet converted into
359+ :term:`ReSt` formated documents.
360+
361+.. include:: _static/rst/external_hint.txt
362
363=== added file 'applications/examples/static/sphinx/_sources/glossary.txt'
364--- applications/examples/static/sphinx/_sources/glossary.txt 1970-01-01 00:00:00 +0000
365+++ applications/examples/static/sphinx/_sources/glossary.txt 2009-05-11 19:38:38 +0000
366@@ -0,0 +1,15 @@
367+***************************
368+Glossary
369+***************************
370+
371+.. glossary::
372+ :sorted:
373+
374+ ReSt
375+ ReStructured Text ASCII markup format
376+
377+ CLI
378+ Command Line Interface
379+
380+ DVCS
381+ Distributed Version Control System
382
383=== added directory 'applications/examples/static/sphinx/_sources/gluon'
384=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.compat.txt'
385--- applications/examples/static/sphinx/_sources/gluon/gluon.compat.txt 1970-01-01 00:00:00 +0000
386+++ applications/examples/static/sphinx/_sources/gluon/gluon.compat.txt 2009-05-11 19:38:38 +0000
387@@ -0,0 +1,13 @@
388+Compat Documentation
389+====================
390+
391+This page contains the Compat Package documentation.
392+
393+The :mod:`uuid` Module
394+----------------------
395+
396+.. automodule:: gluon.compat.uuid
397+ :members:
398+ :undoc-members:
399+ :show-inheritance:
400+
401
402=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.gateways.txt'
403--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.gateways.txt 1970-01-01 00:00:00 +0000
404+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.gateways.txt 2009-05-11 19:38:38 +0000
405@@ -0,0 +1,13 @@
406+Gateways Documentation
407+======================
408+
409+This page contains the Gateways Package documentation.
410+
411+The :mod:`fcgi` Module
412+----------------------
413+
414+.. automodule:: gluon.contrib.gateways.fcgi
415+ :members:
416+ :undoc-members:
417+ :show-inheritance:
418+
419
420=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.markdown.txt'
421--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.markdown.txt 1970-01-01 00:00:00 +0000
422+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.markdown.txt 2009-05-11 19:38:38 +0000
423@@ -0,0 +1,21 @@
424+Markdown Documentation
425+======================
426+
427+This page contains the Markdown Package documentation.
428+
429+The :mod:`markdown` Package
430+---------------------------
431+
432+.. automodule:: gluon.contrib.markdown
433+ :members:
434+ :undoc-members:
435+ :show-inheritance:
436+
437+The :mod:`markdown2` Module
438+---------------------------
439+
440+.. automodule:: gluon.contrib.markdown.markdown2
441+ :members:
442+ :undoc-members:
443+ :show-inheritance:
444+
445
446=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.memcache.txt'
447--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.memcache.txt 1970-01-01 00:00:00 +0000
448+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.memcache.txt 2009-05-11 19:38:38 +0000
449@@ -0,0 +1,21 @@
450+Memcache Documentation
451+======================
452+
453+This page contains the Memcache Package documentation.
454+
455+The :mod:`memcache` Module
456+--------------------------
457+
458+.. automodule:: gluon.contrib.memcache.memcache
459+ :members:
460+ :undoc-members:
461+ :show-inheritance:
462+
463+The :mod:`memcache` Package
464+---------------------------
465+
466+.. automodule:: gluon.contrib.memcache
467+ :members:
468+ :undoc-members:
469+ :show-inheritance:
470+
471
472=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.pyrtf.txt'
473--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.pyrtf.txt 1970-01-01 00:00:00 +0000
474+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.pyrtf.txt 2009-05-11 19:38:38 +0000
475@@ -0,0 +1,53 @@
476+Pyrtf Documentation
477+===================
478+
479+This page contains the Pyrtf Package documentation.
480+
481+The :mod:`Elements` Module
482+--------------------------
483+
484+.. automodule:: gluon.contrib.pyrtf.Elements
485+ :members:
486+ :undoc-members:
487+ :show-inheritance:
488+
489+The :mod:`Renderer` Module
490+--------------------------
491+
492+.. automodule:: gluon.contrib.pyrtf.Renderer
493+ :members:
494+ :undoc-members:
495+ :show-inheritance:
496+
497+The :mod:`PropertySets` Module
498+------------------------------
499+
500+.. automodule:: gluon.contrib.pyrtf.PropertySets
501+ :members:
502+ :undoc-members:
503+ :show-inheritance:
504+
505+The :mod:`pyrtf` Package
506+------------------------
507+
508+.. automodule:: gluon.contrib.pyrtf
509+ :members:
510+ :undoc-members:
511+ :show-inheritance:
512+
513+The :mod:`Constants` Module
514+---------------------------
515+
516+.. automodule:: gluon.contrib.pyrtf.Constants
517+ :members:
518+ :undoc-members:
519+ :show-inheritance:
520+
521+The :mod:`Styles` Module
522+------------------------
523+
524+.. automodule:: gluon.contrib.pyrtf.Styles
525+ :members:
526+ :undoc-members:
527+ :show-inheritance:
528+
529
530=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.simplejson.txt'
531--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.simplejson.txt 1970-01-01 00:00:00 +0000
532+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.simplejson.txt 2009-05-11 19:38:38 +0000
533@@ -0,0 +1,37 @@
534+Simplejson Documentation
535+========================
536+
537+This page contains the Simplejson Package documentation.
538+
539+The :mod:`encoder` Module
540+-------------------------
541+
542+.. automodule:: gluon.contrib.simplejson.encoder
543+ :members:
544+ :undoc-members:
545+ :show-inheritance:
546+
547+The :mod:`simplejson` Package
548+-----------------------------
549+
550+.. automodule:: gluon.contrib.simplejson
551+ :members:
552+ :undoc-members:
553+ :show-inheritance:
554+
555+The :mod:`scanner` Module
556+-------------------------
557+
558+.. automodule:: gluon.contrib.simplejson.scanner
559+ :members:
560+ :undoc-members:
561+ :show-inheritance:
562+
563+The :mod:`decoder` Module
564+-------------------------
565+
566+.. automodule:: gluon.contrib.simplejson.decoder
567+ :members:
568+ :undoc-members:
569+ :show-inheritance:
570+
571
572=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.contrib.txt'
573--- applications/examples/static/sphinx/_sources/gluon/gluon.contrib.txt 1970-01-01 00:00:00 +0000
574+++ applications/examples/static/sphinx/_sources/gluon/gluon.contrib.txt 2009-05-11 19:38:38 +0000
575@@ -0,0 +1,80 @@
576+Contrib Documentation
577+=====================
578+
579+This page contains the Contrib Package documentation.
580+
581+Subpackages
582+-----------
583+
584+.. toctree::
585+
586+ gluon.contrib.pyrtf
587+ gluon.contrib.gateways
588+ gluon.contrib.markdown
589+ gluon.contrib.memcache
590+ gluon.contrib.simplejson
591+
592+The :mod:`feedparser` Module
593+----------------------------
594+
595+.. automodule:: gluon.contrib.feedparser
596+ :members:
597+ :undoc-members:
598+ :show-inheritance:
599+
600+The :mod:`memdb` Module
601+-----------------------
602+
603+.. automodule:: gluon.contrib.memdb
604+ :members:
605+ :undoc-members:
606+ :show-inheritance:
607+
608+The :mod:`rss2` Module
609+----------------------
610+
611+.. automodule:: gluon.contrib.rss2
612+ :members:
613+ :undoc-members:
614+ :show-inheritance:
615+
616+The :mod:`wsgihooks` Module
617+---------------------------
618+
619+.. automodule:: gluon.contrib.wsgihooks
620+ :members:
621+ :undoc-members:
622+ :show-inheritance:
623+
624+The :mod:`taskbar_widget` Module
625+--------------------------------
626+
627+.. automodule:: gluon.contrib.taskbar_widget
628+ :members:
629+ :undoc-members:
630+ :show-inheritance:
631+
632+The :mod:`cron` Module
633+----------------------
634+
635+.. automodule:: gluon.contrib.cron
636+ :members:
637+ :undoc-members:
638+ :show-inheritance:
639+
640+The :mod:`gae_memcache` Module
641+------------------------------
642+
643+.. automodule:: gluon.contrib.gae_memcache
644+ :members:
645+ :undoc-members:
646+ :show-inheritance:
647+
648+The :mod:`gql` Module
649+---------------------
650+
651+.. automodule:: gluon.contrib.gql
652+ :members:
653+ :undoc-members:
654+ :show-inheritance:
655+
656
657=== added file 'applications/examples/static/sphinx/_sources/gluon/gluon.txt'
658--- applications/examples/static/sphinx/_sources/gluon/gluon.txt 1970-01-01 00:00:00 +0000
659+++ applications/examples/static/sphinx/_sources/gluon/gluon.txt 2009-05-11 19:38:38 +0000
660@@ -0,0 +1,220 @@
661+Gluon Package
662+===================
663+
664+This page contains the Gluon Package documentation.
665+
666+Subpackages
667+-----------
668+
669+.. toctree::
670+
671+ gluon.compat
672+ gluon.contrib
673+
674+The :mod:`validators` Module
675+----------------------------
676+
677+.. automodule:: gluon.validators
678+ :members:
679+ :undoc-members:
680+ :show-inheritance:
681+
682+The :mod:`sql` Module
683+---------------------
684+
685+.. automodule:: gluon.sql
686+ :members:
687+ :undoc-members:
688+ :show-inheritance:
689+
690+The :mod:`xmlrpc` Module
691+------------------------
692+
693+.. automodule:: gluon.xmlrpc
694+ :members:
695+ :undoc-members:
696+ :show-inheritance:
697+
698+The :mod:`shell` Module
699+-----------------------
700+
701+.. automodule:: gluon.shell
702+ :members:
703+ :undoc-members:
704+ :show-inheritance:
705+
706+The :mod:`utils` Module
707+-----------------------
708+
709+.. automodule:: gluon.utils
710+ :members:
711+ :undoc-members:
712+ :show-inheritance:
713+
714+The :mod:`globals` Module
715+-------------------------
716+
717+.. automodule:: gluon.globals
718+ :members:
719+ :undoc-members:
720+ :show-inheritance:
721+
722+The :mod:`compileapp` Module
723+----------------------------
724+
725+.. automodule:: gluon.compileapp
726+ :members:
727+ :undoc-members:
728+ :show-inheritance:
729+
730+The :mod:`wsgiserver` Module
731+----------------------------
732+
733+.. automodule:: gluon.wsgiserver
734+ :members:
735+ :undoc-members:
736+ :show-inheritance:
737+
738+The :mod:`winservice` Module
739+----------------------------
740+
741+.. automodule:: gluon.winservice
742+ :members:
743+ :undoc-members:
744+ :show-inheritance:
745+
746+The :mod:`template` Module
747+--------------------------
748+
749+.. automodule:: gluon.template
750+ :members:
751+ :undoc-members:
752+ :show-inheritance:
753+
754+The :mod:`fileutils` Module
755+---------------------------
756+
757+.. automodule:: gluon.fileutils
758+ :members:
759+ :undoc-members:
760+ :show-inheritance:
761+
762+The :mod:`sqlhtml` Module
763+-------------------------
764+
765+.. automodule:: gluon.sqlhtml
766+ :members:
767+ :undoc-members:
768+ :show-inheritance:
769+
770+The :mod:`tools` Module
771+-----------------------
772+
773+.. automodule:: gluon.tools
774+ :members:
775+ :undoc-members:
776+ :show-inheritance:
777+
778+The :mod:`languages` Module
779+---------------------------
780+
781+.. automodule:: gluon.languages
782+ :members:
783+ :undoc-members:
784+ :show-inheritance:
785+
786+The :mod:`streamer` Module
787+--------------------------
788+
789+.. automodule:: gluon.streamer
790+ :members:
791+ :undoc-members:
792+ :show-inheritance:
793+
794+The :mod:`restricted` Module
795+----------------------------
796+
797+.. automodule:: gluon.restricted
798+ :members:
799+ :undoc-members:
800+ :show-inheritance:
801+
802+The :mod:`http` Module
803+----------------------
804+
805+.. automodule:: gluon.http
806+ :members:
807+ :undoc-members:
808+ :show-inheritance:
809+
810+The :mod:`storage` Module
811+-------------------------
812+
813+.. automodule:: gluon.storage
814+ :members:
815+ :undoc-members:
816+ :show-inheritance:
817+
818+The :mod:`highlight` Module
819+---------------------------
820+
821+.. automodule:: gluon.highlight
822+ :members:
823+ :undoc-members:
824+ :show-inheritance:
825+
826+The :mod:`cache` Module
827+-----------------------
828+
829+.. automodule:: gluon.cache
830+ :members:
831+ :undoc-members:
832+ :show-inheritance:
833+
834+The :mod:`sanitizer` Module
835+---------------------------
836+
837+.. automodule:: gluon.sanitizer
838+ :members:
839+ :undoc-members:
840+ :show-inheritance:
841+
842+The :mod:`main` Module
843+----------------------
844+
845+.. automodule:: gluon.main
846+ :members:
847+ :undoc-members:
848+ :show-inheritance:
849+
850+The :mod:`widget` Module
851+------------------------
852+
853+.. automodule:: gluon.widget
854+ :members:
855+ :undoc-members:
856+ :show-inheritance:
857+
858+The :mod:`rewrite` Module
859+-------------------------
860+
861+.. automodule:: gluon.rewrite
862+ :members:
863+ :undoc-members:
864+ :show-inheritance:
865+
866+The :mod:`html` Module
867+----------------------
868+
869+.. automodule:: gluon.html
870+ :members:
871+ :undoc-members:
872+ :show-inheritance:
873+
874+The :mod:`contenttype` Module
875+-----------------------------
876+
877+.. automodule:: gluon.contenttype
878+ :members:
879+ :undoc-members:
880+ :show-inheritance:
881
882=== added file 'applications/examples/static/sphinx/_sources/index.txt'
883--- applications/examples/static/sphinx/_sources/index.txt 1970-01-01 00:00:00 +0000
884+++ applications/examples/static/sphinx/_sources/index.txt 2009-05-11 19:38:38 +0000
885@@ -0,0 +1,91 @@
886+.. Web2Py documentation master file, created by
887+ sphinx-quickstart on Thu Apr 30 17:10:06 2009.
888+ You can adapt this file completely to your liking, but it should at least
889+ contain the root `toctree` directive.
890+
891+Welcome to Web2Py's documentation!
892+==================================
893+
894+.. warning:: This is a BETA version of the Sphinx based documentation for
895+ *web2py*. **It is subject to change!**
896+
897+.. note:: The documentation at the current stage is intended for develpers
898+ and contributors. They shall have the possibility to test their
899+ docstrings and markup.
900+
901+.. note:: Please read :doc:`docs_contrib` for instructions to Sphinx
902+ documentation writing for *web2py*!
903+
904+Contents
905+===================
906+
907+General Documents
908+-------------------
909+.. toctree::
910+ :maxdepth: 2
911+
912+ docs_contrib
913+ docs_overview
914+ web2py_todo
915+ glossary
916+
917+Contributed Documents
918+------------------------
919+.. toctree::
920+ :maxdepth: 1
921+
922+ user_wiki
923+ faq
924+
925+
926+
927+.. User Wiki
928+ -------------------
929+
930+ .. rubric:: The pages from the `User Wiki <https://mdp.cti.depaul.edu/wiki>`_
931+
932+ .. note:: According to an `ongoing discussion <http://thread.gmane.org/gmane.comp.python.web2py/8304/focus=8512>`_,
933+ the page order and structure may be
934+ changed in the future.
935+
936+ .. on error do::
937+
938+ rename 's/\.txt/\.rst/' *.txt
939+
940+ .. toctree::
941+ :maxdepth: 2
942+ :glob:
943+
944+ user_wiki/*
945+
946+
947+.. Frequently Asked Questions (FAQ)
948+ ----------------------------------
949+
950+ .. rubric:: The pages from the `AlterEgo <http://www.web2py.com/AlterEgo>`_
951+
952+ .. note:: These pages are extracted as plain and not yet converted into
953+ :term:`ReSt` formated documents.
954+
955+ .. toctree::
956+ :maxdepth: 2
957+ :glob:
958+
959+ faq/*
960+
961+Modules
962+-------------------
963+
964+.. toctree::
965+ :maxdepth: 2
966+
967+
968+ modules
969+
970+
971+Indices and tables
972+==================
973+
974+* :ref:`genindex`
975+* :ref:`modindex`
976+* :ref:`search`
977
978=== added file 'applications/examples/static/sphinx/_sources/modules.txt'
979--- applications/examples/static/sphinx/_sources/modules.txt 1970-01-01 00:00:00 +0000
980+++ applications/examples/static/sphinx/_sources/modules.txt 2009-05-11 19:38:38 +0000
981@@ -0,0 +1,10 @@
982+Web2Py Modules
983+====================
984+
985+.. rubric:: This page contains the Web2Py Modules documentation.
986+
987+.. toctree::
988+ :maxdepth: 5
989+
990+ gluon/gluon
991+
992
993=== added file 'applications/examples/static/sphinx/_sources/user_wiki.txt'
994--- applications/examples/static/sphinx/_sources/user_wiki.txt 1970-01-01 00:00:00 +0000
995+++ applications/examples/static/sphinx/_sources/user_wiki.txt 2009-05-11 19:38:38 +0000
996@@ -0,0 +1,6 @@
997+User Wiki
998+===================
999+
1000+.. rubric:: The pages from the `User Wiki <https://mdp.cti.depaul.edu/wiki>`_
1001+
1002+.. include:: _static/rst/external_hint.txt
1003
1004=== added file 'applications/examples/static/sphinx/_sources/web2py_todo.txt'
1005--- applications/examples/static/sphinx/_sources/web2py_todo.txt 1970-01-01 00:00:00 +0000
1006+++ applications/examples/static/sphinx/_sources/web2py_todo.txt 2009-05-11 19:38:38 +0000
1007@@ -0,0 +1,28 @@
1008+***************************
1009+Todo & Feature Proposals
1010+***************************
1011+
1012+Documentation
1013+========================
1014+
1015+#. update or create a .bzrignore
1016+#. correct docstrings
1017+#. add more hand written documentation.
1018+#. customise sphinx theme
1019+ #. colors
1020+#. fix long lines
1021+#. decide finally what to do with FAQ and wiki
1022+ #. FAQ
1023+ #. document API doc and add the script (``generate_modules.py``) to
1024+ tools
1025+ #. fix FAQ docs
1026+ #. User Wiki
1027+ #. document wiki markdown to :term`ReSt` conversion and add the script
1028+ (``convert_faq.py``)to tools
1029+ #. fix ``user_wiki`` docs
1030+
1031+Proposed new features
1032+========================
1033+
1034+#. new feature x
1035+#. new feature z
1036
1037=== added directory 'applications/examples/static/sphinx/_static'
1038=== added file 'applications/examples/static/sphinx/_static/basic.css'
1039--- applications/examples/static/sphinx/_static/basic.css 1970-01-01 00:00:00 +0000
1040+++ applications/examples/static/sphinx/_static/basic.css 2009-05-11 19:38:38 +0000
1041@@ -0,0 +1,405 @@
1042+/**
1043+ * Sphinx stylesheet -- basic theme
1044+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1045+ */
1046+
1047+/* -- main layout ----------------------------------------------------------- */
1048+
1049+div.clearer {
1050+ clear: both;
1051+}
1052+
1053+/* -- relbar ---------------------------------------------------------------- */
1054+
1055+div.related {
1056+ width: 100%;
1057+ font-size: 90%;
1058+}
1059+
1060+div.related h3 {
1061+ display: none;
1062+}
1063+
1064+div.related ul {
1065+ margin: 0;
1066+ padding: 0 0 0 10px;
1067+ list-style: none;
1068+}
1069+
1070+div.related li {
1071+ display: inline;
1072+}
1073+
1074+div.related li.right {
1075+ float: right;
1076+ margin-right: 5px;
1077+}
1078+
1079+/* -- sidebar --------------------------------------------------------------- */
1080+
1081+div.sphinxsidebarwrapper {
1082+ padding: 10px 5px 0 10px;
1083+}
1084+
1085+div.sphinxsidebar {
1086+ float: left;
1087+ width: 230px;
1088+ margin-left: -100%;
1089+ font-size: 90%;
1090+}
1091+
1092+div.sphinxsidebar ul {
1093+ list-style: none;
1094+}
1095+
1096+div.sphinxsidebar ul ul,
1097+div.sphinxsidebar ul.want-points {
1098+ margin-left: 20px;
1099+ list-style: square;
1100+}
1101+
1102+div.sphinxsidebar ul ul {
1103+ margin-top: 0;
1104+ margin-bottom: 0;
1105+}
1106+
1107+div.sphinxsidebar form {
1108+ margin-top: 10px;
1109+}
1110+
1111+div.sphinxsidebar input {
1112+ border: 1px solid #98dbcc;
1113+ font-family: sans-serif;
1114+ font-size: 1em;
1115+}
1116+
1117+img {
1118+ border: 0;
1119+}
1120+
1121+/* -- search page ----------------------------------------------------------- */
1122+
1123+ul.search {
1124+ margin: 10px 0 0 20px;
1125+ padding: 0;
1126+}
1127+
1128+ul.search li {
1129+ padding: 5px 0 5px 20px;
1130+ background-image: url(file.png);
1131+ background-repeat: no-repeat;
1132+ background-position: 0 7px;
1133+}
1134+
1135+ul.search li a {
1136+ font-weight: bold;
1137+}
1138+
1139+ul.search li div.context {
1140+ color: #888;
1141+ margin: 2px 0 0 30px;
1142+ text-align: left;
1143+}
1144+
1145+ul.keywordmatches li.goodmatch a {
1146+ font-weight: bold;
1147+}
1148+
1149+/* -- index page ------------------------------------------------------------ */
1150+
1151+table.contentstable {
1152+ width: 90%;
1153+}
1154+
1155+table.contentstable p.biglink {
1156+ line-height: 150%;
1157+}
1158+
1159+a.biglink {
1160+ font-size: 1.3em;
1161+}
1162+
1163+span.linkdescr {
1164+ font-style: italic;
1165+ padding-top: 5px;
1166+ font-size: 90%;
1167+}
1168+
1169+/* -- general index --------------------------------------------------------- */
1170+
1171+table.indextable td {
1172+ text-align: left;
1173+ vertical-align: top;
1174+}
1175+
1176+table.indextable dl, table.indextable dd {
1177+ margin-top: 0;
1178+ margin-bottom: 0;
1179+}
1180+
1181+table.indextable tr.pcap {
1182+ height: 10px;
1183+}
1184+
1185+table.indextable tr.cap {
1186+ margin-top: 10px;
1187+ background-color: #f2f2f2;
1188+}
1189+
1190+img.toggler {
1191+ margin-right: 3px;
1192+ margin-top: 3px;
1193+ cursor: pointer;
1194+}
1195+
1196+/* -- general body styles --------------------------------------------------- */
1197+
1198+a.headerlink {
1199+ visibility: hidden;
1200+}
1201+
1202+h1:hover > a.headerlink,
1203+h2:hover > a.headerlink,
1204+h3:hover > a.headerlink,
1205+h4:hover > a.headerlink,
1206+h5:hover > a.headerlink,
1207+h6:hover > a.headerlink,
1208+dt:hover > a.headerlink {
1209+ visibility: visible;
1210+}
1211+
1212+div.body p.caption {
1213+ text-align: inherit;
1214+}
1215+
1216+div.body td {
1217+ text-align: left;
1218+}
1219+
1220+.field-list ul {
1221+ padding-left: 1em;
1222+}
1223+
1224+.first {
1225+ margin-top: 0 !important;
1226+}
1227+
1228+p.rubric {
1229+ margin-top: 30px;
1230+ font-weight: bold;
1231+}
1232+
1233+/* -- sidebars -------------------------------------------------------------- */
1234+
1235+div.sidebar {
1236+ margin: 0 0 0.5em 1em;
1237+ border: 1px solid #ddb;
1238+ padding: 7px 7px 0 7px;
1239+ background-color: #ffe;
1240+ width: 40%;
1241+ float: right;
1242+}
1243+
1244+p.sidebar-title {
1245+ font-weight: bold;
1246+}
1247+
1248+/* -- topics ---------------------------------------------------------------- */
1249+
1250+div.topic {
1251+ border: 1px solid #ccc;
1252+ padding: 7px 7px 0 7px;
1253+ margin: 10px 0 10px 0;
1254+}
1255+
1256+p.topic-title {
1257+ font-size: 1.1em;
1258+ font-weight: bold;
1259+ margin-top: 10px;
1260+}
1261+
1262+/* -- admonitions ----------------------------------------------------------- */
1263+
1264+div.admonition {
1265+ margin-top: 10px;
1266+ margin-bottom: 10px;
1267+ padding: 7px;
1268+}
1269+
1270+div.admonition dt {
1271+ font-weight: bold;
1272+}
1273+
1274+div.admonition dl {
1275+ margin-bottom: 0;
1276+}
1277+
1278+p.admonition-title {
1279+ margin: 0px 10px 5px 0px;
1280+ font-weight: bold;
1281+}
1282+
1283+div.body p.centered {
1284+ text-align: center;
1285+ margin-top: 25px;
1286+}
1287+
1288+/* -- tables ---------------------------------------------------------------- */
1289+
1290+table.docutils {
1291+ border: 0;
1292+ border-collapse: collapse;
1293+}
1294+
1295+table.docutils td, table.docutils th {
1296+ padding: 1px 8px 1px 5px;
1297+ border-top: 0;
1298+ border-left: 0;
1299+ border-right: 0;
1300+ border-bottom: 1px solid #aaa;
1301+}
1302+
1303+table.field-list td, table.field-list th {
1304+ border: 0 !important;
1305+}
1306+
1307+table.footnote td, table.footnote th {
1308+ border: 0 !important;
1309+}
1310+
1311+th {
1312+ text-align: left;
1313+ padding-right: 5px;
1314+}
1315+
1316+/* -- other body styles ----------------------------------------------------- */
1317+
1318+dl {
1319+ margin-bottom: 15px;
1320+}
1321+
1322+dd p {
1323+ margin-top: 0px;
1324+}
1325+
1326+dd ul, dd table {
1327+ margin-bottom: 10px;
1328+}
1329+
1330+dd {
1331+ margin-top: 3px;
1332+ margin-bottom: 10px;
1333+ margin-left: 30px;
1334+}
1335+
1336+dt:target, .highlight {
1337+ background-color: #fbe54e;
1338+}
1339+
1340+dl.glossary dt {
1341+ font-weight: bold;
1342+ font-size: 1.1em;
1343+}
1344+
1345+.field-list ul {
1346+ margin: 0;
1347+ padding-left: 1em;
1348+}
1349+
1350+.field-list p {
1351+ margin: 0;
1352+}
1353+
1354+.refcount {
1355+ color: #060;
1356+}
1357+
1358+.optional {
1359+ font-size: 1.3em;
1360+}
1361+
1362+.versionmodified {
1363+ font-style: italic;
1364+}
1365+
1366+.system-message {
1367+ background-color: #fda;
1368+ padding: 5px;
1369+ border: 3px solid red;
1370+}
1371+
1372+.footnote:target {
1373+ background-color: #ffa
1374+}
1375+
1376+/* -- code displays --------------------------------------------------------- */
1377+
1378+pre {
1379+ overflow: auto;
1380+}
1381+
1382+td.linenos pre {
1383+ padding: 5px 0px;
1384+ border: 0;
1385+ background-color: transparent;
1386+ color: #aaa;
1387+}
1388+
1389+table.highlighttable {
1390+ margin-left: 0.5em;
1391+}
1392+
1393+table.highlighttable td {
1394+ padding: 0 0.5em 0 0.5em;
1395+}
1396+
1397+tt.descname {
1398+ background-color: transparent;
1399+ font-weight: bold;
1400+ font-size: 1.2em;
1401+}
1402+
1403+tt.descclassname {
1404+ background-color: transparent;
1405+}
1406+
1407+tt.xref, a tt {
1408+ background-color: transparent;
1409+ font-weight: bold;
1410+}
1411+
1412+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
1413+ background-color: transparent;
1414+}
1415+
1416+/* -- math display ---------------------------------------------------------- */
1417+
1418+img.math {
1419+ vertical-align: middle;
1420+}
1421+
1422+div.math p {
1423+ text-align: center;
1424+}
1425+
1426+span.eqno {
1427+ float: right;
1428+}
1429+
1430+/* -- printout stylesheet --------------------------------------------------- */
1431+
1432+@media print {
1433+ div.document,
1434+ div.documentwrapper,
1435+ div.bodywrapper {
1436+ margin: 0;
1437+ width: 100%;
1438+ }
1439+
1440+ div.sphinxsidebar,
1441+ div.related,
1442+ div.footer,
1443+ #top-link {
1444+ display: none;
1445+ }
1446+}
1447
1448=== added file 'applications/examples/static/sphinx/_static/default.css'
1449--- applications/examples/static/sphinx/_static/default.css 1970-01-01 00:00:00 +0000
1450+++ applications/examples/static/sphinx/_static/default.css 2009-05-11 19:38:38 +0000
1451@@ -0,0 +1,214 @@
1452+/**
1453+ * Sphinx stylesheet -- default theme
1454+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1455+ */
1456+
1457+@import url("basic.css");
1458+
1459+/* -- page layout ----------------------------------------------------------- */
1460+
1461+body {
1462+ font-family: sans-serif;
1463+ font-size: 100%;
1464+ background-color: #11303d;
1465+ color: #000;
1466+ margin: 0;
1467+ padding: 0;
1468+}
1469+
1470+div.document {
1471+ background-color: #1c4e63;
1472+}
1473+
1474+div.documentwrapper {
1475+ float: left;
1476+ width: 100%;
1477+}
1478+
1479+div.bodywrapper {
1480+ margin: 0 0 0 230px;
1481+}
1482+
1483+div.body {
1484+ background-color: #ffffff;
1485+ color: #000000;
1486+ padding: 0 20px 30px 20px;
1487+}
1488+
1489+div.footer {
1490+ color: #ffffff;
1491+ width: 100%;
1492+ padding: 9px 0 9px 0;
1493+ text-align: center;
1494+ font-size: 75%;
1495+}
1496+
1497+div.footer a {
1498+ color: #ffffff;
1499+ text-decoration: underline;
1500+}
1501+
1502+div.related {
1503+ background-color: #133f52;
1504+ line-height: 30px;
1505+ color: #ffffff;
1506+}
1507+
1508+div.related a {
1509+ color: #ffffff;
1510+}
1511+
1512+div.sphinxsidebar {
1513+}
1514+
1515+div.sphinxsidebar h3 {
1516+ font-family: 'Trebuchet MS', sans-serif;
1517+ color: #ffffff;
1518+ font-size: 1.4em;
1519+ font-weight: normal;
1520+ margin: 0;
1521+ padding: 0;
1522+}
1523+
1524+div.sphinxsidebar h3 a {
1525+ color: #ffffff;
1526+}
1527+
1528+div.sphinxsidebar h4 {
1529+ font-family: 'Trebuchet MS', sans-serif;
1530+ color: #ffffff;
1531+ font-size: 1.3em;
1532+ font-weight: normal;
1533+ margin: 5px 0 0 0;
1534+ padding: 0;
1535+}
1536+
1537+div.sphinxsidebar p {
1538+ color: #ffffff;
1539+}
1540+
1541+div.sphinxsidebar p.topless {
1542+ margin: 5px 10px 10px 10px;
1543+}
1544+
1545+div.sphinxsidebar ul {
1546+ margin: 10px;
1547+ padding: 0;
1548+ color: #ffffff;
1549+}
1550+
1551+div.sphinxsidebar a {
1552+ color: #98dbcc;
1553+}
1554+
1555+div.sphinxsidebar input {
1556+ border: 1px solid #98dbcc;
1557+ font-family: sans-serif;
1558+ font-size: 1em;
1559+}
1560+
1561+/* -- body styles ----------------------------------------------------------- */
1562+
1563+a {
1564+ color: #355f7c;
1565+ text-decoration: none;
1566+}
1567+
1568+a:hover {
1569+ text-decoration: underline;
1570+}
1571+
1572+div.body p, div.body dd, div.body li {
1573+ text-align: justify;
1574+ line-height: 130%;
1575+}
1576+
1577+div.body h1,
1578+div.body h2,
1579+div.body h3,
1580+div.body h4,
1581+div.body h5,
1582+div.body h6 {
1583+ font-family: 'Trebuchet MS', sans-serif;
1584+ background-color: #f2f2f2;
1585+ font-weight: normal;
1586+ color: #20435c;
1587+ border-bottom: 1px solid #ccc;
1588+ margin: 20px -20px 10px -20px;
1589+ padding: 3px 0 3px 10px;
1590+}
1591+
1592+div.body h1 { margin-top: 0; font-size: 200%; }
1593+div.body h2 { font-size: 160%; }
1594+div.body h3 { font-size: 140%; }
1595+div.body h4 { font-size: 120%; }
1596+div.body h5 { font-size: 110%; }
1597+div.body h6 { font-size: 100%; }
1598+
1599+a.headerlink {
1600+ color: #c60f0f;
1601+ font-size: 0.8em;
1602+ padding: 0 4px 0 4px;
1603+ text-decoration: none;
1604+}
1605+
1606+a.headerlink:hover {
1607+ background-color: #c60f0f;
1608+ color: white;
1609+}
1610+
1611+div.body p, div.body dd, div.body li {
1612+ text-align: justify;
1613+ line-height: 130%;
1614+}
1615+
1616+div.admonition p.admonition-title + p {
1617+ display: inline;
1618+}
1619+
1620+div.note {
1621+ background-color: #eee;
1622+ border: 1px solid #ccc;
1623+}
1624+
1625+div.seealso {
1626+ background-color: #ffc;
1627+ border: 1px solid #ff6;
1628+}
1629+
1630+div.topic {
1631+ background-color: #eee;
1632+}
1633+
1634+div.warning {
1635+ background-color: #ffe4e4;
1636+ border: 1px solid #f66;
1637+}
1638+
1639+p.admonition-title {
1640+ display: inline;
1641+}
1642+
1643+p.admonition-title:after {
1644+ content: ":";
1645+}
1646+
1647+pre {
1648+ padding: 5px;
1649+ background-color: #eeffcc;
1650+ color: #333333;
1651+ line-height: 120%;
1652+ border: 1px solid #ac9;
1653+ border-left: none;
1654+ border-right: none;
1655+}
1656+
1657+tt {
1658+ background-color: #ecf0f3;
1659+ padding: 0 1px 0 1px;
1660+ font-size: 0.95em;
1661+}
1662+
1663+th {
1664+ background-color: #ede;
1665+}
1666\ No newline at end of file
1667
1668=== added file 'applications/examples/static/sphinx/_static/doctools.js'
1669--- applications/examples/static/sphinx/_static/doctools.js 1970-01-01 00:00:00 +0000
1670+++ applications/examples/static/sphinx/_static/doctools.js 2009-05-11 19:38:38 +0000
1671@@ -0,0 +1,232 @@
1672+/// XXX: make it cross browser
1673+
1674+/**
1675+ * make the code below compatible with browsers without
1676+ * an installed firebug like debugger
1677+ */
1678+if (!window.console || !console.firebug) {
1679+ var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
1680+ "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
1681+ window.console = {};
1682+ for (var i = 0; i < names.length; ++i)
1683+ window.console[names[i]] = function() {}
1684+}
1685+
1686+/**
1687+ * small helper function to urldecode strings
1688+ */
1689+jQuery.urldecode = function(x) {
1690+ return decodeURIComponent(x).replace(/\+/g, ' ');
1691+}
1692+
1693+/**
1694+ * small helper function to urlencode strings
1695+ */
1696+jQuery.urlencode = encodeURIComponent;
1697+
1698+/**
1699+ * This function returns the parsed url parameters of the
1700+ * current request. Multiple values per key are supported,
1701+ * it will always return arrays of strings for the value parts.
1702+ */
1703+jQuery.getQueryParameters = function(s) {
1704+ if (typeof s == 'undefined')
1705+ s = document.location.search;
1706+ var parts = s.substr(s.indexOf('?') + 1).split('&');
1707+ var result = {};
1708+ for (var i = 0; i < parts.length; i++) {
1709+ var tmp = parts[i].split('=', 2);
1710+ var key = jQuery.urldecode(tmp[0]);
1711+ var value = jQuery.urldecode(tmp[1]);
1712+ if (key in result)
1713+ result[key].push(value);
1714+ else
1715+ result[key] = [value];
1716+ }
1717+ return result;
1718+}
1719+
1720+/**
1721+ * small function to check if an array contains
1722+ * a given item.
1723+ */
1724+jQuery.contains = function(arr, item) {
1725+ for (var i = 0; i < arr.length; i++) {
1726+ if (arr[i] == item)
1727+ return true;
1728+ }
1729+ return false;
1730+}
1731+
1732+/**
1733+ * highlight a given string on a jquery object by wrapping it in
1734+ * span elements with the given class name.
1735+ */
1736+jQuery.fn.highlightText = function(text, className) {
1737+ function highlight(node) {
1738+ if (node.nodeType == 3) {
1739+ var val = node.nodeValue;
1740+ var pos = val.toLowerCase().indexOf(text);
1741+ if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
1742+ var span = document.createElement("span");
1743+ span.className = className;
1744+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
1745+ node.parentNode.insertBefore(span, node.parentNode.insertBefore(
1746+ document.createTextNode(val.substr(pos + text.length)),
1747+ node.nextSibling));
1748+ node.nodeValue = val.substr(0, pos);
1749+ }
1750+ }
1751+ else if (!jQuery(node).is("button, select, textarea")) {
1752+ jQuery.each(node.childNodes, function() {
1753+ highlight(this)
1754+ });
1755+ }
1756+ }
1757+ return this.each(function() {
1758+ highlight(this);
1759+ });
1760+}
1761+
1762+/**
1763+ * Small JavaScript module for the documentation.
1764+ */
1765+var Documentation = {
1766+
1767+ init : function() {
1768+ this.fixFirefoxAnchorBug();
1769+ this.highlightSearchWords();
1770+ this.initModIndex();
1771+ },
1772+
1773+ /**
1774+ * i18n support
1775+ */
1776+ TRANSLATIONS : {},
1777+ PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
1778+ LOCALE : 'unknown',
1779+
1780+ // gettext and ngettext don't access this so that the functions
1781+ // can savely bound to a different name (_ = Documentation.gettext)
1782+ gettext : function(string) {
1783+ var translated = Documentation.TRANSLATIONS[string];
1784+ if (typeof translated == 'undefined')
1785+ return string;
1786+ return (typeof translated == 'string') ? translated : translated[0];
1787+ },
1788+
1789+ ngettext : function(singular, plural, n) {
1790+ var translated = Documentation.TRANSLATIONS[singular];
1791+ if (typeof translated == 'undefined')
1792+ return (n == 1) ? singular : plural;
1793+ return translated[Documentation.PLURALEXPR(n)];
1794+ },
1795+
1796+ addTranslations : function(catalog) {
1797+ for (var key in catalog.messages)
1798+ this.TRANSLATIONS[key] = catalog.messages[key];
1799+ this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
1800+ this.LOCALE = catalog.locale;
1801+ },
1802+
1803+ /**
1804+ * add context elements like header anchor links
1805+ */
1806+ addContextElements : function() {
1807+ $('div[id] > :header:first').each(function() {
1808+ $('<a class="headerlink">\u00B6</a>').
1809+ attr('href', '#' + this.id).
1810+ attr('title', _('Permalink to this headline')).
1811+ appendTo(this);
1812+ });
1813+ $('dt[id]').each(function() {
1814+ $('<a class="headerlink">\u00B6</a>').
1815+ attr('href', '#' + this.id).
1816+ attr('title', _('Permalink to this definition')).
1817+ appendTo(this);
1818+ });
1819+ },
1820+
1821+ /**
1822+ * workaround a firefox stupidity
1823+ */
1824+ fixFirefoxAnchorBug : function() {
1825+ if (document.location.hash && $.browser.mozilla)
1826+ window.setTimeout(function() {
1827+ document.location.href += '';
1828+ }, 10);
1829+ },
1830+
1831+ /**
1832+ * highlight the search words provided in the url in the text
1833+ */
1834+ highlightSearchWords : function() {
1835+ var params = $.getQueryParameters();
1836+ var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
1837+ if (terms.length) {
1838+ var body = $('div.body');
1839+ window.setTimeout(function() {
1840+ $.each(terms, function() {
1841+ body.highlightText(this.toLowerCase(), 'highlight');
1842+ });
1843+ }, 10);
1844+ $('<li class="highlight-link"><a href="javascript:Documentation.' +
1845+ 'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
1846+ .appendTo($('.sidebar .this-page-menu'));
1847+ }
1848+ },
1849+
1850+ /**
1851+ * init the modindex toggle buttons
1852+ */
1853+ initModIndex : function() {
1854+ var togglers = $('img.toggler').click(function() {
1855+ var src = $(this).attr('src');
1856+ var idnum = $(this).attr('id').substr(7);
1857+ console.log($('tr.cg-' + idnum).toggle());
1858+ if (src.substr(-9) == 'minus.png')
1859+ $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
1860+ else
1861+ $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
1862+ }).css('display', '');
1863+ if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
1864+ togglers.click();
1865+ }
1866+ },
1867+
1868+ /**
1869+ * helper function to hide the search marks again
1870+ */
1871+ hideSearchWords : function() {
1872+ $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
1873+ $('span.highlight').removeClass('highlight');
1874+ },
1875+
1876+ /**
1877+ * make the url absolute
1878+ */
1879+ makeURL : function(relativeURL) {
1880+ return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
1881+ },
1882+
1883+ /**
1884+ * get the current relative url
1885+ */
1886+ getCurrentURL : function() {
1887+ var path = document.location.pathname;
1888+ var parts = path.split(/\//);
1889+ $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
1890+ if (this == '..')
1891+ parts.pop();
1892+ });
1893+ var url = parts.join('/');
1894+ return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
1895+ }
1896+};
1897+
1898+// quick alias for translations
1899+_ = Documentation.gettext;
1900+
1901+$(document).ready(function() {
1902+ Documentation.init();
1903+});
1904
1905=== added file 'applications/examples/static/sphinx/_static/file.png'
1906Binary files applications/examples/static/sphinx/_static/file.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/file.png 2009-05-11 19:38:38 +0000 differ
1907=== added file 'applications/examples/static/sphinx/_static/jquery.js'
1908--- applications/examples/static/sphinx/_static/jquery.js 1970-01-01 00:00:00 +0000
1909+++ applications/examples/static/sphinx/_static/jquery.js 2009-05-11 19:38:38 +0000
1910@@ -0,0 +1,32 @@
1911+/*
1912+ * jQuery 1.2.6 - New Wave Javascript
1913+ *
1914+ * Copyright (c) 2008 John Resig (jquery.com)
1915+ * Dual licensed under the MIT (MIT-LICENSE.txt)
1916+ * and GPL (GPL-LICENSE.txt) licenses.
1917+ *
1918+ * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
1919+ * $Rev: 5685 $
1920+ */
1921+(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
1922+return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
1923+return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
1924+selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
1925+return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
1926+this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
1927+return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
1928+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
1929+script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
1930+for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
1931+for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
1932+jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
1933+ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
1934+while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
1935+while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
1936+for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
1937+jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
1938+xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
1939+jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
1940+for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
1941+s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
1942+e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
1943\ No newline at end of file
1944
1945=== added file 'applications/examples/static/sphinx/_static/logo_colored_small.png'
1946Binary files applications/examples/static/sphinx/_static/logo_colored_small.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/logo_colored_small.png 2009-05-11 19:38:38 +0000 differ
1947=== added file 'applications/examples/static/sphinx/_static/minus.png'
1948Binary files applications/examples/static/sphinx/_static/minus.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/minus.png 2009-05-11 19:38:38 +0000 differ
1949=== added directory 'applications/examples/static/sphinx/_static/pics'
1950=== added file 'applications/examples/static/sphinx/_static/pics/logo.png'
1951Binary files applications/examples/static/sphinx/_static/pics/logo.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/pics/logo.png 2009-05-11 19:38:38 +0000 differ
1952=== added file 'applications/examples/static/sphinx/_static/pics/logo_colored.png'
1953Binary files applications/examples/static/sphinx/_static/pics/logo_colored.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/pics/logo_colored.png 2009-05-11 19:38:38 +0000 differ
1954=== added file 'applications/examples/static/sphinx/_static/pics/logo_colored_small.png'
1955Binary files applications/examples/static/sphinx/_static/pics/logo_colored_small.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/pics/logo_colored_small.png 2009-05-11 19:38:38 +0000 differ
1956=== added file 'applications/examples/static/sphinx/_static/pics/logo_small.jpg'
1957Binary files applications/examples/static/sphinx/_static/pics/logo_small.jpg 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/pics/logo_small.jpg 2009-05-11 19:38:38 +0000 differ
1958=== added file 'applications/examples/static/sphinx/_static/pics/logo_small.png'
1959Binary files applications/examples/static/sphinx/_static/pics/logo_small.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/pics/logo_small.png 2009-05-11 19:38:38 +0000 differ
1960=== added file 'applications/examples/static/sphinx/_static/plus.png'
1961Binary files applications/examples/static/sphinx/_static/plus.png 1970-01-01 00:00:00 +0000 and applications/examples/static/sphinx/_static/plus.png 2009-05-11 19:38:38 +0000 differ
1962=== added file 'applications/examples/static/sphinx/_static/pygments.css'
1963--- applications/examples/static/sphinx/_static/pygments.css 1970-01-01 00:00:00 +0000
1964+++ applications/examples/static/sphinx/_static/pygments.css 2009-05-11 19:38:38 +0000
1965@@ -0,0 +1,59 @@
1966+.c { color: #408090; font-style: italic } /* Comment */
1967+.err { border: 1px solid #FF0000 } /* Error */
1968+.k { color: #007020; font-weight: bold } /* Keyword */
1969+.o { color: #666666 } /* Operator */
1970+.cm { color: #408090; font-style: italic } /* Comment.Multiline */
1971+.cp { color: #007020 } /* Comment.Preproc */
1972+.c1 { color: #408090; font-style: italic } /* Comment.Single */
1973+.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
1974+.gd { color: #A00000 } /* Generic.Deleted */
1975+.ge { font-style: italic } /* Generic.Emph */
1976+.gr { color: #FF0000 } /* Generic.Error */
1977+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
1978+.gi { color: #00A000 } /* Generic.Inserted */
1979+.go { color: #303030 } /* Generic.Output */
1980+.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
1981+.gs { font-weight: bold } /* Generic.Strong */
1982+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
1983+.gt { color: #0040D0 } /* Generic.Traceback */
1984+.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
1985+.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
1986+.kp { color: #007020 } /* Keyword.Pseudo */
1987+.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
1988+.kt { color: #902000 } /* Keyword.Type */
1989+.m { color: #208050 } /* Literal.Number */
1990+.s { color: #4070a0 } /* Literal.String */
1991+.na { color: #4070a0 } /* Name.Attribute */
1992+.nb { color: #007020 } /* Name.Builtin */
1993+.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
1994+.no { color: #60add5 } /* Name.Constant */
1995+.nd { color: #555555; font-weight: bold } /* Name.Decorator */
1996+.ni { color: #d55537; font-weight: bold } /* Name.Entity */
1997+.ne { color: #007020 } /* Name.Exception */
1998+.nf { color: #06287e } /* Name.Function */
1999+.nl { color: #002070; font-weight: bold } /* Name.Label */
2000+.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
2001+.nt { color: #062873; font-weight: bold } /* Name.Tag */
2002+.nv { color: #bb60d5 } /* Name.Variable */
2003+.ow { color: #007020; font-weight: bold } /* Operator.Word */
2004+.w { color: #bbbbbb } /* Text.Whitespace */
2005+.mf { color: #208050 } /* Literal.Number.Float */
2006+.mh { color: #208050 } /* Literal.Number.Hex */
2007+.mi { color: #208050 } /* Literal.Number.Integer */
2008+.mo { color: #208050 } /* Literal.Number.Oct */
2009+.sb { color: #4070a0 } /* Literal.String.Backtick */
2010+.sc { color: #4070a0 } /* Literal.String.Char */
2011+.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
2012+.s2 { color: #4070a0 } /* Literal.String.Double */
2013+.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
2014+.sh { color: #4070a0 } /* Literal.String.Heredoc */
2015+.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
2016+.sx { color: #c65d09 } /* Literal.String.Other */
2017+.sr { color: #235388 } /* Literal.String.Regex */
2018+.s1 { color: #4070a0 } /* Literal.String.Single */
2019+.ss { color: #517918 } /* Literal.String.Symbol */
2020+.bp { color: #007020 } /* Name.Builtin.Pseudo */
2021+.vc { color: #bb60d5 } /* Name.Variable.Class */
2022+.vg { color: #bb60d5 } /* Name.Variable.Global */
2023+.vi { color: #bb60d5 } /* Name.Variable.Instance */
2024+.il { color: #208050 } /* Literal.Number.Integer.Long */
2025\ No newline at end of file
2026
2027=== added directory 'applications/examples/static/sphinx/_static/rst'
2028=== added file 'applications/examples/static/sphinx/_static/rst/external_hint.txt'
2029--- applications/examples/static/sphinx/_static/rst/external_hint.txt 1970-01-01 00:00:00 +0000
2030+++ applications/examples/static/sphinx/_static/rst/external_hint.txt 2009-05-11 19:38:38 +0000
2031@@ -0,0 +1,22 @@
2032+
2033+.. note:: There is an `ongoing discussion
2034+ <http://thread.gmane.org/gmane.comp.python.web2py/8538/focus=8633>`_,
2035+ on whether this part of the *web2py* documents should be
2036+ included in the developer documentation.
2037+
2038+ This discussion involves:
2039+
2040+ * the `AlterEgo (FAQ) <http://www.web2py.com/AlterEgo>`_
2041+ * the `User Wiki <https://mdp.cti.depaul.edu/wiki>`_
2042+
2043+ Until this is resolved, the parts under question will be excluded.
2044+
2045+ Nevertheless, these party are still available and can be included in
2046+ the Sphinx build by the following steps:
2047+
2048+ #. back up the directory ``web2py/doc``
2049+ #. unzip the archive ``external_input.zip`` delivered with the
2050+ documentation in the directory
2051+ ``web2py/doc``.
2052+ Existing files should be overwritten.
2053+ #. re-build the documentation
2054
2055=== added file 'applications/examples/static/sphinx/_static/searchtools.js'
2056--- applications/examples/static/sphinx/_static/searchtools.js 1970-01-01 00:00:00 +0000
2057+++ applications/examples/static/sphinx/_static/searchtools.js 2009-05-11 19:38:38 +0000
2058@@ -0,0 +1,476 @@
2059+/**
2060+ * helper function to return a node containing the
2061+ * search summary for a given text. keywords is a list
2062+ * of stemmed words, hlwords is the list of normal, unstemmed
2063+ * words. the first one is used to find the occurance, the
2064+ * latter for highlighting it.
2065+ */
2066+
2067+jQuery.makeSearchSummary = function(text, keywords, hlwords) {
2068+ var textLower = text.toLowerCase();
2069+ var start = 0;
2070+ $.each(keywords, function() {
2071+ var i = textLower.indexOf(this.toLowerCase());
2072+ if (i > -1)
2073+ start = i;
2074+ });
2075+ start = Math.max(start - 120, 0);
2076+ var excerpt = ((start > 0) ? '...' : '') +
2077+ $.trim(text.substr(start, 240)) +
2078+ ((start + 240 - text.length) ? '...' : '');
2079+ var rv = $('<div class="context"></div>').text(excerpt);
2080+ $.each(hlwords, function() {
2081+ rv = rv.highlightText(this, 'highlight');
2082+ });
2083+ return rv;
2084+}
2085+
2086+/**
2087+ * Porter Stemmer
2088+ */
2089+var PorterStemmer = function() {
2090+
2091+ var step2list = {
2092+ ational: 'ate',
2093+ tional: 'tion',
2094+ enci: 'ence',
2095+ anci: 'ance',
2096+ izer: 'ize',
2097+ bli: 'ble',
2098+ alli: 'al',
2099+ entli: 'ent',
2100+ eli: 'e',
2101+ ousli: 'ous',
2102+ ization: 'ize',
2103+ ation: 'ate',
2104+ ator: 'ate',
2105+ alism: 'al',
2106+ iveness: 'ive',
2107+ fulness: 'ful',
2108+ ousness: 'ous',
2109+ aliti: 'al',
2110+ iviti: 'ive',
2111+ biliti: 'ble',
2112+ logi: 'log'
2113+ };
2114+
2115+ var step3list = {
2116+ icate: 'ic',
2117+ ative: '',
2118+ alize: 'al',
2119+ iciti: 'ic',
2120+ ical: 'ic',
2121+ ful: '',
2122+ ness: ''
2123+ };
2124+
2125+ var c = "[^aeiou]"; // consonant
2126+ var v = "[aeiouy]"; // vowel
2127+ var C = c + "[^aeiouy]*"; // consonant sequence
2128+ var V = v + "[aeiou]*"; // vowel sequence
2129+
2130+ var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
2131+ var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
2132+ var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
2133+ var s_v = "^(" + C + ")?" + v; // vowel in stem
2134+
2135+ this.stemWord = function (w) {
2136+ var stem;
2137+ var suffix;
2138+ var firstch;
2139+ var origword = w;
2140+
2141+ if (w.length < 3)
2142+ return w;
2143+
2144+ var re;
2145+ var re2;
2146+ var re3;
2147+ var re4;
2148+
2149+ firstch = w.substr(0,1);
2150+ if (firstch == "y")
2151+ w = firstch.toUpperCase() + w.substr(1);
2152+
2153+ // Step 1a
2154+ re = /^(.+?)(ss|i)es$/;
2155+ re2 = /^(.+?)([^s])s$/;
2156+
2157+ if (re.test(w))
2158+ w = w.replace(re,"$1$2");
2159+ else if (re2.test(w))
2160+ w = w.replace(re2,"$1$2");
2161+
2162+ // Step 1b
2163+ re = /^(.+?)eed$/;
2164+ re2 = /^(.+?)(ed|ing)$/;
2165+ if (re.test(w)) {
2166+ var fp = re.exec(w);
2167+ re = new RegExp(mgr0);
2168+ if (re.test(fp[1])) {
2169+ re = /.$/;
2170+ w = w.replace(re,"");
2171+ }
2172+ }
2173+ else if (re2.test(w)) {
2174+ var fp = re2.exec(w);
2175+ stem = fp[1];
2176+ re2 = new RegExp(s_v);
2177+ if (re2.test(stem)) {
2178+ w = stem;
2179+ re2 = /(at|bl|iz)$/;
2180+ re3 = new RegExp("([^aeiouylsz])\\1$");
2181+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
2182+ if (re2.test(w))
2183+ w = w + "e";
2184+ else if (re3.test(w)) {
2185+ re = /.$/;
2186+ w = w.replace(re,"");
2187+ }
2188+ else if (re4.test(w))
2189+ w = w + "e";
2190+ }
2191+ }
2192+
2193+ // Step 1c
2194+ re = /^(.+?)y$/;
2195+ if (re.test(w)) {
2196+ var fp = re.exec(w);
2197+ stem = fp[1];
2198+ re = new RegExp(s_v);
2199+ if (re.test(stem))
2200+ w = stem + "i";
2201+ }
2202+
2203+ // Step 2
2204+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
2205+ if (re.test(w)) {
2206+ var fp = re.exec(w);
2207+ stem = fp[1];
2208+ suffix = fp[2];
2209+ re = new RegExp(mgr0);
2210+ if (re.test(stem))
2211+ w = stem + step2list[suffix];
2212+ }
2213+
2214+ // Step 3
2215+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
2216+ if (re.test(w)) {
2217+ var fp = re.exec(w);
2218+ stem = fp[1];
2219+ suffix = fp[2];
2220+ re = new RegExp(mgr0);
2221+ if (re.test(stem))
2222+ w = stem + step3list[suffix];
2223+ }
2224+
2225+ // Step 4
2226+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
2227+ re2 = /^(.+?)(s|t)(ion)$/;
2228+ if (re.test(w)) {
2229+ var fp = re.exec(w);
2230+ stem = fp[1];
2231+ re = new RegExp(mgr1);
2232+ if (re.test(stem))
2233+ w = stem;
2234+ }
2235+ else if (re2.test(w)) {
2236+ var fp = re2.exec(w);
2237+ stem = fp[1] + fp[2];
2238+ re2 = new RegExp(mgr1);
2239+ if (re2.test(stem))
2240+ w = stem;
2241+ }
2242+
2243+ // Step 5
2244+ re = /^(.+?)e$/;
2245+ if (re.test(w)) {
2246+ var fp = re.exec(w);
2247+ stem = fp[1];
2248+ re = new RegExp(mgr1);
2249+ re2 = new RegExp(meq1);
2250+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
2251+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
2252+ w = stem;
2253+ }
2254+ re = /ll$/;
2255+ re2 = new RegExp(mgr1);
2256+ if (re.test(w) && re2.test(w)) {
2257+ re = /.$/;
2258+ w = w.replace(re,"");
2259+ }
2260+
2261+ // and turn initial Y back to y
2262+ if (firstch == "y")
2263+ w = firstch.toLowerCase() + w.substr(1);
2264+ return w;
2265+ }
2266+}
2267+
2268+
2269+/**
2270+ * Search Module
2271+ */
2272+var Search = {
2273+
2274+ _index : null,
2275+ _queued_query : null,
2276+ _pulse_status : -1,
2277+
2278+ init : function() {
2279+ var params = $.getQueryParameters();
2280+ if (params.q) {
2281+ var query = params.q[0];
2282+ $('input[name="q"]')[0].value = query;
2283+ this.performSearch(query);
2284+ }
2285+ },
2286+
2287+ /**
2288+ * Sets the index
2289+ */
2290+ setIndex : function(index) {
2291+ var q;
2292+ this._index = index;
2293+ if ((q = this._queued_query) !== null) {
2294+ this._queued_query = null;
2295+ Search.query(q);
2296+ }
2297+ },
2298+
2299+ hasIndex : function() {
2300+ return this._index !== null;
2301+ },
2302+
2303+ deferQuery : function(query) {
2304+ this._queued_query = query;
2305+ },
2306+
2307+ stopPulse : function() {
2308+ this._pulse_status = 0;
2309+ },
2310+
2311+ startPulse : function() {
2312+ if (this._pulse_status >= 0)
2313+ return;
2314+ function pulse() {
2315+ Search._pulse_status = (Search._pulse_status + 1) % 4;
2316+ var dotString = '';
2317+ for (var i = 0; i < Search._pulse_status; i++)
2318+ dotString += '.';
2319+ Search.dots.text(dotString);
2320+ if (Search._pulse_status > -1)
2321+ window.setTimeout(pulse, 500);
2322+ };
2323+ pulse();
2324+ },
2325+
2326+ /**
2327+ * perform a search for something
2328+ */
2329+ performSearch : function(query) {
2330+ // create the required interface elements
2331+ this.out = $('#search-results');
2332+ this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
2333+ this.dots = $('<span></span>').appendTo(this.title);
2334+ this.status = $('<p style="display: none"></p>').appendTo(this.out);
2335+ this.output = $('<ul class="search"/>').appendTo(this.out);
2336+
2337+ $('#search-progress').text(_('Preparing search...'));
2338+ this.startPulse();
2339+
2340+ // index already loaded, the browser was quick!
2341+ if (this.hasIndex())
2342+ this.query(query);
2343+ else
2344+ this.deferQuery(query);
2345+ },
2346+
2347+ query : function(query) {
2348+ var stopwords = ['and', 'then', 'into', 'it', 'as', 'are', 'in',
2349+ 'if', 'for', 'no', 'there', 'their', 'was', 'is',
2350+ 'be', 'to', 'that', 'but', 'they', 'not', 'such',
2351+ 'with', 'by', 'a', 'on', 'these', 'of', 'will',
2352+ 'this', 'near', 'the', 'or', 'at'];
2353+
2354+ // stem the searchterms and add them to the correct list
2355+ var stemmer = new PorterStemmer();
2356+ var searchterms = [];
2357+ var excluded = [];
2358+ var hlterms = [];
2359+ var tmp = query.split(/\s+/);
2360+ var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
2361+ for (var i = 0; i < tmp.length; i++) {
2362+ if (stopwords.indexOf(tmp[i]) != -1 || tmp[i].match(/^\d+$/)) {
2363+ // skip this word
2364+ continue;
2365+ }
2366+ // stem the word
2367+ var word = stemmer.stemWord(tmp[i]).toLowerCase();
2368+ // select the correct list
2369+ if (word[0] == '-') {
2370+ var toAppend = excluded;
2371+ word = word.substr(1);
2372+ }
2373+ else {
2374+ var toAppend = searchterms;
2375+ hlterms.push(tmp[i].toLowerCase());
2376+ }
2377+ // only add if not already in the list
2378+ if (!$.contains(toAppend, word))
2379+ toAppend.push(word);
2380+ };
2381+ var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
2382+
2383+ console.debug('SEARCH: searching for:');
2384+ console.info('required: ', searchterms);
2385+ console.info('excluded: ', excluded);
2386+
2387+ // prepare search
2388+ var filenames = this._index.filenames;
2389+ var titles = this._index.titles;
2390+ var terms = this._index.terms;
2391+ var descrefs = this._index.descrefs;
2392+ var modules = this._index.modules;
2393+ var desctypes = this._index.desctypes;
2394+ var fileMap = {};
2395+ var files = null;
2396+ var objectResults = [];
2397+ var regularResults = [];
2398+ $('#search-progress').empty();
2399+
2400+ // lookup as object
2401+ if (object != null) {
2402+ for (var module in modules) {
2403+ if (module.indexOf(object) > -1) {
2404+ fn = modules[module];
2405+ descr = _('module, in ') + titles[fn];
2406+ objectResults.push([filenames[fn], module, '#module-'+module, descr]);
2407+ }
2408+ }
2409+ for (var prefix in descrefs) {
2410+ for (var name in descrefs[prefix]) {
2411+ var fullname = (prefix ? prefix + '.' : '') + name;
2412+ if (fullname.toLowerCase().indexOf(object) > -1) {
2413+ match = descrefs[prefix][name];
2414+ descr = desctypes[match[1]] + _(', in ') + titles[match[0]];
2415+ objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]);
2416+ }
2417+ }
2418+ }
2419+ }
2420+
2421+ // sort results descending
2422+ objectResults.sort(function(a, b) {
2423+ return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
2424+ });
2425+
2426+
2427+ // perform the search on the required terms
2428+ for (var i = 0; i < searchterms.length; i++) {
2429+ var word = searchterms[i];
2430+ // no match but word was a required one
2431+ if ((files = terms[word]) == null)
2432+ break;
2433+ if (files.length == undefined) {
2434+ files = [files];
2435+ }
2436+ // create the mapping
2437+ for (var j = 0; j < files.length; j++) {
2438+ var file = files[j];
2439+ if (file in fileMap)
2440+ fileMap[file].push(word);
2441+ else
2442+ fileMap[file] = [word];
2443+ }
2444+ }
2445+
2446+ // now check if the files don't contain excluded terms
2447+ for (var file in fileMap) {
2448+ var valid = true;
2449+
2450+ // check if all requirements are matched
2451+ if (fileMap[file].length != searchterms.length)
2452+ continue;
2453+
2454+ // ensure that none of the excluded terms is in the
2455+ // search result.
2456+ for (var i = 0; i < excluded.length; i++) {
2457+ if (terms[excluded[i]] == file ||
2458+ $.contains(terms[excluded[i]] || [], file)) {
2459+ valid = false;
2460+ break;
2461+ }
2462+ }
2463+
2464+ // if we have still a valid result we can add it
2465+ // to the result list
2466+ if (valid)
2467+ regularResults.push([filenames[file], titles[file], '', null]);
2468+ }
2469+
2470+ // delete unused variables in order to not waste
2471+ // memory until list is retrieved completely
2472+ delete filenames, titles, terms;
2473+
2474+ // now sort the regular results descending by title
2475+ regularResults.sort(function(a, b) {
2476+ var left = a[1].toLowerCase();
2477+ var right = b[1].toLowerCase();
2478+ return (left > right) ? -1 : ((left < right) ? 1 : 0);
2479+ });
2480+
2481+ // combine both
2482+ var results = regularResults.concat(objectResults);
2483+
2484+ // print the results
2485+ var resultCount = results.length;
2486+ function displayNextItem() {
2487+ // results left, load the summary and display it
2488+ if (results.length) {
2489+ var item = results.pop();
2490+ var listItem = $('<li style="display:none"></li>');
2491+ listItem.append($('<a/>').attr(
2492+ 'href',
2493+ item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
2494+ highlightstring + item[2]).html(item[1]));
2495+ if (item[3]) {
2496+ listItem.append($('<span> (' + item[3] + ')</span>'));
2497+ Search.output.append(listItem);
2498+ listItem.slideDown(5, function() {
2499+ displayNextItem();
2500+ });
2501+ } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
2502+ $.get('_sources/' + item[0] + '.txt', function(data) {
2503+ listItem.append($.makeSearchSummary(data, searchterms, hlterms));
2504+ Search.output.append(listItem);
2505+ listItem.slideDown(5, function() {
2506+ displayNextItem();
2507+ });
2508+ });
2509+ } else {
2510+ // no source available, just display title
2511+ Search.output.append(listItem);
2512+ listItem.slideDown(5, function() {
2513+ displayNextItem();
2514+ });
2515+ }
2516+ }
2517+ // search finished, update title and status message
2518+ else {
2519+ Search.stopPulse();
2520+ Search.title.text(_('Search Results'));
2521+ if (!resultCount)
2522+ Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
2523+ else
2524+ Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
2525+ Search.status.fadeIn(500);
2526+ }
2527+ }
2528+ displayNextItem();
2529+ }
2530+}
2531+
2532+$(document).ready(function() {
2533+ Search.init();
2534+});
2535
2536=== added file 'applications/examples/static/sphinx/docs_contrib.html'
2537--- applications/examples/static/sphinx/docs_contrib.html 1970-01-01 00:00:00 +0000
2538+++ applications/examples/static/sphinx/docs_contrib.html 2009-05-11 19:38:38 +0000
2539@@ -0,0 +1,268 @@
2540+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2541+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2542+
2543+<html xmlns="http://www.w3.org/1999/xhtml">
2544+ <head>
2545+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2546+
2547+ <title>Introduction for documenting &mdash; Web2Py v1.62 rc2 documentation</title>
2548+ <link rel="stylesheet" href="_static/default.css" type="text/css" />
2549+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
2550+ <script type="text/javascript">
2551+ var DOCUMENTATION_OPTIONS = {
2552+ URL_ROOT: '',
2553+ VERSION: '1.62 rc2',
2554+ COLLAPSE_MODINDEX: false,
2555+ FILE_SUFFIX: '.html',
2556+ HAS_SOURCE: true
2557+ };
2558+ </script>
2559+ <script type="text/javascript" src="_static/jquery.js"></script>
2560+ <script type="text/javascript" src="_static/doctools.js"></script>
2561+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="index.html" />
2562+ <link rel="next" title="Documentation Overview" href="docs_overview.html" />
2563+ <link rel="prev" title="Welcome to Web2Py’s documentation!" href="index.html" />
2564+ </head>
2565+ <body>
2566+ <div class="related">
2567+ <h3>Navigation</h3>
2568+ <ul>
2569+ <li class="right" style="margin-right: 10px">
2570+ <a href="genindex.html" title="General Index"
2571+ accesskey="I">index</a></li>
2572+ <li class="right" >
2573+ <a href="modindex.html" title="Global Module Index"
2574+ accesskey="M">modules</a> |</li>
2575+ <li class="right" >
2576+ <a href="docs_overview.html" title="Documentation Overview"
2577+ accesskey="N">next</a> |</li>
2578+ <li class="right" >
2579+ <a href="index.html" title="Welcome to Web2Py’s documentation!"
2580+ accesskey="P">previous</a> |</li>
2581+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
2582+ </ul>
2583+ </div>
2584+
2585+ <div class="document">
2586+ <div class="documentwrapper">
2587+ <div class="bodywrapper">
2588+ <div class="body">
2589+
2590+ <div class="section" id="introduction-for-documenting">
2591+<h1>Introduction for documenting<a class="headerlink" href="#introduction-for-documenting" title="Permalink to this headline">¶</a></h1>
2592+<p class="rubric">Some hints on writing documentation with Sphinx for web2py</p>
2593+<div class="section" id="writing-documentation">
2594+<h2>Writing documentation<a class="headerlink" href="#writing-documentation" title="Permalink to this headline">¶</a></h2>
2595+<div class="section" id="official-documentation">
2596+<h3>official documentation<a class="headerlink" href="#official-documentation" title="Permalink to this headline">¶</a></h3>
2597+<ul class="simple">
2598+<li><a class="reference external" href="http://sphinx.pocoo.org/contents.html">Sphinx</a></li>
2599+</ul>
2600+</div>
2601+<div class="section" id="docstrings">
2602+<h3>Docstrings<a class="headerlink" href="#docstrings" title="Permalink to this headline">¶</a></h3>
2603+<ul>
2604+<li><dl class="first docutils">
2605+<dt>official python standard</dt>
2606+<dd><ul class="first last simple">
2607+<li><a class="reference external" href="http://www.python.org/dev/peps/pep-0257">Docstring Conventions</a></li>
2608+<li><a class="reference external" href="http://docs.python.org/dev/documenting/index.html">Documenting Python</a></li>
2609+</ul>
2610+</dd>
2611+</dl>
2612+</li>
2613+<li><dl class="first docutils">
2614+<dt>numpy standard</dt>
2615+<dd><ul class="first last">
2616+<li><p class="first"><a class="reference external" href="http://projects.scipy.org/scipy/numpy/wiki/CodingStyleGuidelines#docstring-standard">documentation standard</a></p>
2617+</li>
2618+<li><p class="first"><a class="reference external" href="http://projects.scipy.org/numpy/browser/trunk/doc/example.py">Example file</a></p>
2619+</li>
2620+<li><dl class="first docutils">
2621+<dt><a class="reference external" href="http://projects.scipy.org/numpy/browser/trunk/doc/EXAMPLE_DOCSTRING.txt">Docstring Template</a></dt>
2622+<dd><p class="first last">If you use <a class="reference external" href="http://pydev.sourceforge.net/">Eclipse / Pydev</a> you can define this piece as template.</p>
2623+</dd>
2624+</dl>
2625+</li>
2626+</ul>
2627+</dd>
2628+</dl>
2629+</li>
2630+</ul>
2631+</div>
2632+<div class="section" id="helpers">
2633+<h3>Helpers<a class="headerlink" href="#helpers" title="Permalink to this headline">¶</a></h3>
2634+<div class="section" id="editors">
2635+<h4>Editors<a class="headerlink" href="#editors" title="Permalink to this headline">¶</a></h4>
2636+<ul class="simple">
2637+<li><a class="reference external" href="http://docutils.sourceforge.net/docs/user/emacs.html">Emacs: see docutils page</a></li>
2638+<li><a class="reference external" href="http://textmethod.com/wiki/ReStructuredTextToolsForGedit">Gedit (Linux)</a></li>
2639+<li><a class="reference external" href="http://code.google.com/p/ulipad">Ulipad (Win)</a></li>
2640+</ul>
2641+</div>
2642+<div class="section" id="others">
2643+<h4>Others<a class="headerlink" href="#others" title="Permalink to this headline">¶</a></h4>
2644+<ul>
2645+<li><p class="first">creating tables in ReST can be painful. Here is a module that can help:</p>
2646+<div class="highlight-python"><pre>easy_install prettytable
2647+import prettytable as pt
2648+mytable =pt.PrettyTable(["id", "category", "recipie"])
2649+print mytable # copy &amp; paste this into your ReST document!
2650+mytable_string = mytable.get_string() # or insert this string when
2651+generating automatic documents</pre>
2652+</div>
2653+</li>
2654+</ul>
2655+</div>
2656+</div>
2657+</div>
2658+<div class="section" id="building-documentation">
2659+<h2>Building documentation<a class="headerlink" href="#building-documentation" title="Permalink to this headline">¶</a></h2>
2660+<p>Follow these steps:</p>
2661+<ol class="arabic">
2662+<li><p class="first">easy_install -U sphinx</p>
2663+</li>
2664+<li><p class="first">built with custom make files for web2py =&gt; <strong>Note: we could create a
2665+cross-platform python script for this!</strong></p>
2666+<blockquote>
2667+<ol class="arabic simple">
2668+<li>unix-like: <tt class="docutils literal"><span class="pre">sh</span> <span class="pre">doc/make-doc_html.sh</span></tt></li>
2669+<li>windows: <tt class="docutils literal"><span class="pre">doc\make-doc_html.bat</span></tt></li>
2670+</ol>
2671+<p>Due to the special manner of the <em>web2py</em> import mechanism it requires that
2672+the doc is built from the <em>web2py</em> root directory.</p>
2673+</blockquote>
2674+</li>
2675+<li><p class="first">the result will written to: <tt class="docutils literal"><span class="pre">web2py/applications/examples/static/sphinx</span></tt>
2676+(the target directory will be automatically created)</p>
2677+</li>
2678+<li><dl class="first docutils">
2679+<dt>inspect any error</dt>
2680+<dd><ol class="first last arabic simple">
2681+<li>on the <a class="reference external" href="glossary.html#term-cli"><em class="xref">CLI</em></a>: see the errors and warnings floating on
2682+<tt class="docutils literal"><span class="pre">stderr</span></tt>/<tt class="docutils literal"><span class="pre">stdout</span></tt></li>
2683+<li>using the above mentioned make files a log file will be written to
2684+<tt class="docutils literal"><span class="pre">web2py/doc/sphinx-build.log</span></tt></li>
2685+</ol>
2686+</dd>
2687+</dl>
2688+</li>
2689+</ol>
2690+</div>
2691+<div class="section" id="contributing">
2692+<h2>Contributing<a class="headerlink" href="#contributing" title="Permalink to this headline">¶</a></h2>
2693+<div class="admonition warning">
2694+<p class="first admonition-title">Warning</p>
2695+<p>Please ask on the
2696+<a class="reference external" href="http://groups.google.com/group/web2py">Mailinglist</a> before
2697+commiting or pushing to the repositories.</p>
2698+<p class="last">So far, it has not been agreed on a proper setup to mutually
2699+edit the documentation and especially how to correct the
2700+docstrings without getting to many <a class="reference external" href="glossary.html#term-dvcs"><em class="xref">DVCS</em></a> conflicts.</p>
2701+</div>
2702+<ol class="arabic">
2703+<li><p class="first">branch the web2py Sphinx code:</p>
2704+<div class="highlight-python"><pre>bzr branch lp:~web2py/web2py/web2py-sphinx
2705+cd web2py-sphinx</pre>
2706+</div>
2707+</li>
2708+<li><p class="first">pull the latest code from web2py Sphinx branch:</p>
2709+<div class="highlight-python"><pre>bzr pull</pre>
2710+</div>
2711+</li>
2712+<li><p class="first">pull latest web2py development version:</p>
2713+<div class="highlight-python"><pre>bzr pull http://bazaar.launchpad.net/~mdipierro/web2py/devel/</pre>
2714+</div>
2715+</li>
2716+<li><p class="first">change and edit the documents or docstrings with your edior</p>
2717+</li>
2718+<li><p class="first">push the changes to the web2py Sphinx branch:</p>
2719+<div class="highlight-python"><pre>bzr push lp:~web2py/web2py/web2py-sphinx</pre>
2720+</div>
2721+<p>This requires that you are a member of the <a class="reference external" href="https://launchpad.net/~web2py">web2py team at Launchpad</a> and registered at Launchpad <a class="reference external" href="https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair">with your SSA keys</a>. You can find more info on the <a class="reference external" href="https://help.launchpad.net/Code/UploadingABranch">Launchpad help page</a></p>
2722+</li>
2723+</ol>
2724+</div>
2725+</div>
2726+
2727+
2728+ </div>
2729+ </div>
2730+ </div>
2731+ <div class="sphinxsidebar">
2732+ <div class="sphinxsidebarwrapper">
2733+ <p class="logo"><a href="index.html">
2734+ <img class="logo" src="_static/logo_colored_small.png" alt="Logo"/>
2735+ </a></p>
2736+ <h3><a href="index.html">Table Of Contents</a></h3>
2737+ <ul>
2738+<li><a class="reference external" href="">Introduction for documenting</a><ul>
2739+<li><a class="reference external" href="#writing-documentation">Writing documentation</a><ul>
2740+<li><a class="reference external" href="#official-documentation">official documentation</a></li>
2741+<li><a class="reference external" href="#docstrings">Docstrings</a></li>
2742+<li><a class="reference external" href="#helpers">Helpers</a><ul>
2743+<li><a class="reference external" href="#editors">Editors</a></li>
2744+<li><a class="reference external" href="#others">Others</a></li>
2745+</ul>
2746+</li>
2747+</ul>
2748+</li>
2749+<li><a class="reference external" href="#building-documentation">Building documentation</a></li>
2750+<li><a class="reference external" href="#contributing">Contributing</a></li>
2751+</ul>
2752+</li>
2753+</ul>
2754+
2755+ <h4>Previous topic</h4>
2756+ <p class="topless"><a href="index.html"
2757+ title="previous chapter">Welcome to Web2Py&#8217;s documentation!</a></p>
2758+ <h4>Next topic</h4>
2759+ <p class="topless"><a href="docs_overview.html"
2760+ title="next chapter">Documentation Overview</a></p>
2761+ <h3>This Page</h3>
2762+ <ul class="this-page-menu">
2763+ <li><a href="_sources/docs_contrib.txt"
2764+ rel="nofollow">Show Source</a></li>
2765+ </ul>
2766+ <div id="searchbox" style="display: none">
2767+ <h3>Quick search</h3>
2768+ <form class="search" action="search.html" method="get">
2769+ <input type="text" name="q" size="18" />
2770+ <input type="submit" value="Go" />
2771+ <input type="hidden" name="check_keywords" value="yes" />
2772+ <input type="hidden" name="area" value="default" />
2773+ </form>
2774+ <p class="searchtip" style="font-size: 90%">
2775+ Enter search terms or a module, class or function name.
2776+ </p>
2777+ </div>
2778+ <script type="text/javascript">$('#searchbox').show(0);</script>
2779+ </div>
2780+ </div>
2781+ <div class="clearer"></div>
2782+ </div>
2783+ <div class="related">
2784+ <h3>Navigation</h3>
2785+ <ul>
2786+ <li class="right" style="margin-right: 10px">
2787+ <a href="genindex.html" title="General Index"
2788+ >index</a></li>
2789+ <li class="right" >
2790+ <a href="modindex.html" title="Global Module Index"
2791+ >modules</a> |</li>
2792+ <li class="right" >
2793+ <a href="docs_overview.html" title="Documentation Overview"
2794+ >next</a> |</li>
2795+ <li class="right" >
2796+ <a href="index.html" title="Welcome to Web2Py’s documentation!"
2797+ >previous</a> |</li>
2798+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
2799+ </ul>
2800+ </div>
2801+ <div class="footer">
2802+ &copy; Copyright 2009, The web2py developers.
2803+ Last updated on May 11, 2009.
2804+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
2805+ </div>
2806+ </body>
2807+</html>
2808\ No newline at end of file
2809
2810=== added file 'applications/examples/static/sphinx/docs_overview.html'
2811--- applications/examples/static/sphinx/docs_overview.html 1970-01-01 00:00:00 +0000
2812+++ applications/examples/static/sphinx/docs_overview.html 2009-05-11 19:38:38 +0000
2813@@ -0,0 +1,261 @@
2814+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2815+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2816+
2817+<html xmlns="http://www.w3.org/1999/xhtml">
2818+ <head>
2819+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2820+
2821+ <title>Documentation Overview &mdash; Web2Py v1.62 rc2 documentation</title>
2822+ <link rel="stylesheet" href="_static/default.css" type="text/css" />
2823+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
2824+ <script type="text/javascript">
2825+ var DOCUMENTATION_OPTIONS = {
2826+ URL_ROOT: '',
2827+ VERSION: '1.62 rc2',
2828+ COLLAPSE_MODINDEX: false,
2829+ FILE_SUFFIX: '.html',
2830+ HAS_SOURCE: true
2831+ };
2832+ </script>
2833+ <script type="text/javascript" src="_static/jquery.js"></script>
2834+ <script type="text/javascript" src="_static/doctools.js"></script>
2835+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="index.html" />
2836+ <link rel="next" title="Todo & Feature Proposals" href="web2py_todo.html" />
2837+ <link rel="prev" title="Introduction for documenting" href="docs_contrib.html" />
2838+ </head>
2839+ <body>
2840+ <div class="related">
2841+ <h3>Navigation</h3>
2842+ <ul>
2843+ <li class="right" style="margin-right: 10px">
2844+ <a href="genindex.html" title="General Index"
2845+ accesskey="I">index</a></li>
2846+ <li class="right" >
2847+ <a href="modindex.html" title="Global Module Index"
2848+ accesskey="M">modules</a> |</li>
2849+ <li class="right" >
2850+ <a href="web2py_todo.html" title="Todo & Feature Proposals"
2851+ accesskey="N">next</a> |</li>
2852+ <li class="right" >
2853+ <a href="docs_contrib.html" title="Introduction for documenting"
2854+ accesskey="P">previous</a> |</li>
2855+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
2856+ </ul>
2857+ </div>
2858+
2859+ <div class="document">
2860+ <div class="documentwrapper">
2861+ <div class="bodywrapper">
2862+ <div class="body">
2863+
2864+ <div class="section" id="documentation-overview">
2865+<h1>Documentation Overview<a class="headerlink" href="#documentation-overview" title="Permalink to this headline">¶</a></h1>
2866+<div class="section" id="official">
2867+<h2>official<a class="headerlink" href="#official" title="Permalink to this headline">¶</a></h2>
2868+<ul>
2869+<li><p class="first"><a class="reference external" href="http://target">Link text</a></p>
2870+</li>
2871+<li><p class="first"><a class="reference external" href="http://127.0.0.1:port/examples/default/docs">web2py built-in documentation (local)</a></p>
2872+</li>
2873+<li><p class="first"><a class="reference external" href="http://web2py.com">web2py site</a></p>
2874+</li>
2875+<li><p class="first"><a class="reference external" href="https://mdp.cti.depaul.edu/wiki">web2py wiki</a></p>
2876+</li>
2877+<li><dl class="first docutils">
2878+<dt>Wiki</dt>
2879+<dd><ul class="first last">
2880+<li><p class="first"><a class="reference external" href="https://mdp.cti.depaul.edu/wiki">User</a></p>
2881+</li>
2882+<li><div class="first system-message">
2883+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst</tt>); <em><a href="#id1">backlink</a></em></p>
2884+<p>Duplicate explicit target name: &#8220;web2py wiki&#8221;.</p>
2885+</div>
2886+<p><a class="reference external" href="https://mdp.cti.depaul.edu/web2py_wiki">Web2Py Wiki</a></p>
2887+</li>
2888+</ul>
2889+</dd>
2890+</dl>
2891+</li>
2892+<li><p class="first"><a href="#id2"><span class="problematic" id="id3">`</span></a>Mailinglist &lt;<a class="reference external" href="http://groups.google.com/group/web2py">http://groups.google.com/group/web2py</a>&gt;`_s</p>
2893+<div class="system-message" id="id2">
2894+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst</tt>, line 14); <em><a href="#id3">backlink</a></em></p>
2895+<p>Inline interpreted text or phrase reference start-string without end-string.</p>
2896+</div>
2897+</li>
2898+<li><dl class="first docutils">
2899+<dt>Manual</dt>
2900+<dd><ul class="first last simple">
2901+<li><a class="reference external" href="http://tinyurl.com/web2py-pdf-manual">web2py pdf manual from lulu.com</a></li>
2902+<li><a class="reference external" href="http://tinyurl.com/web2py-book">web2py book (same as pdf but hard bound from amazon)</a></li>
2903+</ul>
2904+</dd>
2905+</dl>
2906+</li>
2907+<li><p class="first"><a class="reference external" href="http://www.web2py.com/AlterEgo">AlterEgo (FAQ)</a></p>
2908+</li>
2909+<li><dl class="first docutils">
2910+<dt>IRC (chat), web2py IRC archive: see link in channel topic:</dt>
2911+<dd><ul class="first last simple">
2912+<li>with your own client: #web2py</li>
2913+<li>via web interface: <a href="#id6"><span class="problematic" id="id7">`http://web2pychat.com`_</span></a></li>
2914+</ul>
2915+</dd>
2916+</dl>
2917+</li>
2918+<li><p class="first"><a class="reference external" href="http://vimeo.com/videos/search:web2py">Training videos</a></p>
2919+</li>
2920+<li><p class="first"><a class="reference external" href="http://127.0.0.1:8000/applications/examples/static/sphinx/html/index.html">sphinx documentation</a></p>
2921+</li>
2922+<li><dl class="first docutils">
2923+<dt>web2py source - download and inspect the source code:</dt>
2924+<dd><ul class="first last">
2925+<li><p class="first"><a class="reference external" href="http://mdp.cti.depaul.edu/examples/static/web2py_src.zip">Current release</a></p>
2926+</li>
2927+<li><dl class="first docutils">
2928+<dt>Development release:</dt>
2929+<dd><ul class="first last">
2930+<li><p class="first">Subversion (svn): <tt class="docutils literal"><span class="pre">svn</span> <span class="pre">co</span> <span class="pre">`http://web2py.googlecode.com/svn/trunk/`_</span> <span class="pre">web2py-devel</span></tt></p>
2931+</li>
2932+<li><p class="first">Bazaar (bzr): <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">branch</span> <span class="pre">lp:~mdipierro/web2py/devel</span> <span class="pre">web2py-devel</span></tt></p>
2933+</li>
2934+<li><p class="first">Mercurial (hg): <a href="#id4"><span class="problematic" id="id5">``</span></a>hg clone <cite>http://bitbucket.org/douglas/web2py/`_</cite></p>
2935+<div class="system-message" id="id4">
2936+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/docs_overview.rst</tt>, line 29); <em><a href="#id5">backlink</a></em></p>
2937+<p>Inline literal start-string without end-string.</p>
2938+</div>
2939+</li>
2940+</ul>
2941+</dd>
2942+</dl>
2943+</li>
2944+</ul>
2945+</dd>
2946+</dl>
2947+</li>
2948+<li><p class="first"><a class="reference external" href="http://web2py.com/examples/default/support">Professional support</a></p>
2949+</li>
2950+<li><dl class="first docutils">
2951+<dt>Plugins</dt>
2952+<dd><ul class="first last simple">
2953+<li><a class="reference external" href="http://www.vimeo.com/1790354">T2 (fading out)</a></li>
2954+<li><a class="reference external" href="http://www.vimeo.com/2450936">T3 video1</a>, <a class="reference external" href="http://www.vimeo.com/2462041">T3 video2</a></li>
2955+</ul>
2956+</dd>
2957+</dl>
2958+</li>
2959+<li><dl class="first docutils">
2960+<dt>Tutorials</dt>
2961+<dd><ul class="first last simple">
2962+<li>Cookbook</li>
2963+</ul>
2964+</dd>
2965+</dl>
2966+</li>
2967+<li><dl class="first docutils">
2968+<dt>Pycon 2009</dt>
2969+<dd><ul class="first last simple">
2970+<li>Dojo: <a class="reference external" href="http://mdp.cti.depaul.edu/examples/static/dojo.pdf">source code for the web2py Dojo (in PDF form ;-( )</a></li>
2971+<li><a class="reference external" href="http://blip.tv/file/1949388/">ORM Panel w/ Massimo representing web2py DAL</a></li>
2972+</ul>
2973+</dd>
2974+</dl>
2975+</li>
2976+<li><p class="first"><a class="reference external" href="http://appliedstacks.com/NewestFirst/web2py">web2py - who is using it?</a></p>
2977+</li>
2978+<li><p class="first"><a class="reference external" href="http://www.ohloh.net/p/web2py">Code metrics</a></p>
2979+</li>
2980+</ul>
2981+</div>
2982+<div class="section" id="howtos">
2983+<h2>Howtos<a class="headerlink" href="#howtos" title="Permalink to this headline">¶</a></h2>
2984+<p>insert here a link to the docs from the wiki</p>
2985+</div>
2986+<div class="section" id="user-contributed">
2987+<h2>User contributed<a class="headerlink" href="#user-contributed" title="Permalink to this headline">¶</a></h2>
2988+<ul>
2989+<li><p class="first"><a class="reference external" href="http://www.futurelogic.com">web2py in Google App Engine Notes</a></p>
2990+</li>
2991+<li><dl class="first docutils">
2992+<dt>Blogs</dt>
2993+<dd><ul class="first last simple">
2994+<li><a class="reference external" href="http://michaelangela.wordpress.com/category/dev/python/web2py/">Ramblings (web2py category)</a></li>
2995+</ul>
2996+</dd>
2997+</dl>
2998+</li>
2999+</ul>
3000+</div>
3001+</div>
3002+
3003+
3004+ </div>
3005+ </div>
3006+ </div>
3007+ <div class="sphinxsidebar">
3008+ <div class="sphinxsidebarwrapper">
3009+ <p class="logo"><a href="index.html">
3010+ <img class="logo" src="_static/logo_colored_small.png" alt="Logo"/>
3011+ </a></p>
3012+ <h3><a href="index.html">Table Of Contents</a></h3>
3013+ <ul>
3014+<li><a class="reference external" href="">Documentation Overview</a><ul>
3015+<li><a class="reference external" href="#official">official</a></li>
3016+<li><a class="reference external" href="#howtos">Howtos</a></li>
3017+<li><a class="reference external" href="#user-contributed">User contributed</a></li>
3018+</ul>
3019+</li>
3020+</ul>
3021+
3022+ <h4>Previous topic</h4>
3023+ <p class="topless"><a href="docs_contrib.html"
3024+ title="previous chapter">Introduction for documenting</a></p>
3025+ <h4>Next topic</h4>
3026+ <p class="topless"><a href="web2py_todo.html"
3027+ title="next chapter">Todo &amp; Feature Proposals</a></p>
3028+ <h3>This Page</h3>
3029+ <ul class="this-page-menu">
3030+ <li><a href="_sources/docs_overview.txt"
3031+ rel="nofollow">Show Source</a></li>
3032+ </ul>
3033+ <div id="searchbox" style="display: none">
3034+ <h3>Quick search</h3>
3035+ <form class="search" action="search.html" method="get">
3036+ <input type="text" name="q" size="18" />
3037+ <input type="submit" value="Go" />
3038+ <input type="hidden" name="check_keywords" value="yes" />
3039+ <input type="hidden" name="area" value="default" />
3040+ </form>
3041+ <p class="searchtip" style="font-size: 90%">
3042+ Enter search terms or a module, class or function name.
3043+ </p>
3044+ </div>
3045+ <script type="text/javascript">$('#searchbox').show(0);</script>
3046+ </div>
3047+ </div>
3048+ <div class="clearer"></div>
3049+ </div>
3050+ <div class="related">
3051+ <h3>Navigation</h3>
3052+ <ul>
3053+ <li class="right" style="margin-right: 10px">
3054+ <a href="genindex.html" title="General Index"
3055+ >index</a></li>
3056+ <li class="right" >
3057+ <a href="modindex.html" title="Global Module Index"
3058+ >modules</a> |</li>
3059+ <li class="right" >
3060+ <a href="web2py_todo.html" title="Todo & Feature Proposals"
3061+ >next</a> |</li>
3062+ <li class="right" >
3063+ <a href="docs_contrib.html" title="Introduction for documenting"
3064+ >previous</a> |</li>
3065+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
3066+ </ul>
3067+ </div>
3068+ <div class="footer">
3069+ &copy; Copyright 2009, The web2py developers.
3070+ Last updated on May 11, 2009.
3071+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
3072+ </div>
3073+ </body>
3074+</html>
3075\ No newline at end of file
3076
3077=== added file 'applications/examples/static/sphinx/faq.html'
3078--- applications/examples/static/sphinx/faq.html 1970-01-01 00:00:00 +0000
3079+++ applications/examples/static/sphinx/faq.html 2009-05-11 19:38:38 +0000
3080@@ -0,0 +1,144 @@
3081+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3082+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3083+
3084+<html xmlns="http://www.w3.org/1999/xhtml">
3085+ <head>
3086+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3087+
3088+ <title>Frequently Asked Questions (FAQ) &mdash; Web2Py v1.62 rc2 documentation</title>
3089+ <link rel="stylesheet" href="_static/default.css" type="text/css" />
3090+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
3091+ <script type="text/javascript">
3092+ var DOCUMENTATION_OPTIONS = {
3093+ URL_ROOT: '',
3094+ VERSION: '1.62 rc2',
3095+ COLLAPSE_MODINDEX: false,
3096+ FILE_SUFFIX: '.html',
3097+ HAS_SOURCE: true
3098+ };
3099+ </script>
3100+ <script type="text/javascript" src="_static/jquery.js"></script>
3101+ <script type="text/javascript" src="_static/doctools.js"></script>
3102+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="index.html" />
3103+ <link rel="next" title="Web2Py Modules" href="modules.html" />
3104+ <link rel="prev" title="User Wiki" href="user_wiki.html" />
3105+ </head>
3106+ <body>
3107+ <div class="related">
3108+ <h3>Navigation</h3>
3109+ <ul>
3110+ <li class="right" style="margin-right: 10px">
3111+ <a href="genindex.html" title="General Index"
3112+ accesskey="I">index</a></li>
3113+ <li class="right" >
3114+ <a href="modindex.html" title="Global Module Index"
3115+ accesskey="M">modules</a> |</li>
3116+ <li class="right" >
3117+ <a href="modules.html" title="Web2Py Modules"
3118+ accesskey="N">next</a> |</li>
3119+ <li class="right" >
3120+ <a href="user_wiki.html" title="User Wiki"
3121+ accesskey="P">previous</a> |</li>
3122+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
3123+ </ul>
3124+ </div>
3125+
3126+ <div class="document">
3127+ <div class="documentwrapper">
3128+ <div class="bodywrapper">
3129+ <div class="body">
3130+
3131+ <div class="section" id="frequently-asked-questions-faq">
3132+<h1>Frequently Asked Questions (FAQ)<a class="headerlink" href="#frequently-asked-questions-faq" title="Permalink to this headline">¶</a></h1>
3133+<p class="rubric">The pages from the <a class="reference external" href="http://www.web2py.com/AlterEgo">AlterEgo</a></p>
3134+<div class="admonition note">
3135+<p class="first admonition-title">Note</p>
3136+<p class="last">These pages are extracted as plain and not yet converted into
3137+<a class="reference external" href="glossary.html#term-rest"><em class="xref">ReSt</em></a> formated documents.</p>
3138+</div>
3139+<div class="admonition note">
3140+<p class="first admonition-title">Note</p>
3141+<p>There is an <a class="reference external" href="http://thread.gmane.org/gmane.comp.python.web2py/8538/focus=8633">ongoing discussion</a>,
3142+on whether this part of the <em>web2py</em> documents should be
3143+included in the developer documentation.</p>
3144+<p>This discussion involves:</p>
3145+<ul class="simple">
3146+<li>the <a class="reference external" href="http://www.web2py.com/AlterEgo">AlterEgo (FAQ)</a></li>
3147+<li>the <a class="reference external" href="https://mdp.cti.depaul.edu/wiki">User Wiki</a></li>
3148+</ul>
3149+<p>Until this is resolved, the parts under question will be excluded.</p>
3150+<p>Nevertheless, these party are still available and can be included in
3151+the Sphinx build by the following steps:</p>
3152+<ol class="last arabic simple">
3153+<li>back up the directory <tt class="docutils literal"><span class="pre">web2py/doc</span></tt></li>
3154+<li>unzip the archive <tt class="docutils literal"><span class="pre">external_input.zip</span></tt> delivered with the
3155+documentation in the directory
3156+<tt class="docutils literal"><span class="pre">web2py/doc</span></tt>.
3157+Existing files should be overwritten.</li>
3158+<li>re-build the documentation</li>
3159+</ol>
3160+</div>
3161+</div>
3162+
3163+
3164+ </div>
3165+ </div>
3166+ </div>
3167+ <div class="sphinxsidebar">
3168+ <div class="sphinxsidebarwrapper">
3169+ <p class="logo"><a href="index.html">
3170+ <img class="logo" src="_static/logo_colored_small.png" alt="Logo"/>
3171+ </a></p>
3172+ <h4>Previous topic</h4>
3173+ <p class="topless"><a href="user_wiki.html"
3174+ title="previous chapter">User Wiki</a></p>
3175+ <h4>Next topic</h4>
3176+ <p class="topless"><a href="modules.html"
3177+ title="next chapter">Web2Py Modules</a></p>
3178+ <h3>This Page</h3>
3179+ <ul class="this-page-menu">
3180+ <li><a href="_sources/faq.txt"
3181+ rel="nofollow">Show Source</a></li>
3182+ </ul>
3183+ <div id="searchbox" style="display: none">
3184+ <h3>Quick search</h3>
3185+ <form class="search" action="search.html" method="get">
3186+ <input type="text" name="q" size="18" />
3187+ <input type="submit" value="Go" />
3188+ <input type="hidden" name="check_keywords" value="yes" />
3189+ <input type="hidden" name="area" value="default" />
3190+ </form>
3191+ <p class="searchtip" style="font-size: 90%">
3192+ Enter search terms or a module, class or function name.
3193+ </p>
3194+ </div>
3195+ <script type="text/javascript">$('#searchbox').show(0);</script>
3196+ </div>
3197+ </div>
3198+ <div class="clearer"></div>
3199+ </div>
3200+ <div class="related">
3201+ <h3>Navigation</h3>
3202+ <ul>
3203+ <li class="right" style="margin-right: 10px">
3204+ <a href="genindex.html" title="General Index"
3205+ >index</a></li>
3206+ <li class="right" >
3207+ <a href="modindex.html" title="Global Module Index"
3208+ >modules</a> |</li>
3209+ <li class="right" >
3210+ <a href="modules.html" title="Web2Py Modules"
3211+ >next</a> |</li>
3212+ <li class="right" >
3213+ <a href="user_wiki.html" title="User Wiki"
3214+ >previous</a> |</li>
3215+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
3216+ </ul>
3217+ </div>
3218+ <div class="footer">
3219+ &copy; Copyright 2009, The web2py developers.
3220+ Last updated on May 11, 2009.
3221+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
3222+ </div>
3223+ </body>
3224+</html>
3225\ No newline at end of file
3226
3227=== added file 'applications/examples/static/sphinx/genindex.html'
3228--- applications/examples/static/sphinx/genindex.html 1970-01-01 00:00:00 +0000
3229+++ applications/examples/static/sphinx/genindex.html 2009-05-11 19:38:38 +0000
3230@@ -0,0 +1,1043 @@
3231+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3232+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3233+
3234+<html xmlns="http://www.w3.org/1999/xhtml">
3235+ <head>
3236+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3237+
3238+ <title>Index &mdash; Web2Py v1.62 rc2 documentation</title>
3239+ <link rel="stylesheet" href="_static/default.css" type="text/css" />
3240+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
3241+ <script type="text/javascript">
3242+ var DOCUMENTATION_OPTIONS = {
3243+ URL_ROOT: '',
3244+ VERSION: '1.62 rc2',
3245+ COLLAPSE_MODINDEX: false,
3246+ FILE_SUFFIX: '.html',
3247+ HAS_SOURCE: true
3248+ };
3249+ </script>
3250+ <script type="text/javascript" src="_static/jquery.js"></script>
3251+ <script type="text/javascript" src="_static/doctools.js"></script>
3252+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="index.html" />
3253+ </head>
3254+ <body>
3255+ <div class="related">
3256+ <h3>Navigation</h3>
3257+ <ul>
3258+ <li class="right" style="margin-right: 10px">
3259+ <a href="" title="General Index"
3260+ accesskey="I">index</a></li>
3261+ <li class="right" >
3262+ <a href="modindex.html" title="Global Module Index"
3263+ accesskey="M">modules</a> |</li>
3264+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
3265+ </ul>
3266+ </div>
3267+
3268+ <div class="document">
3269+ <div class="documentwrapper">
3270+ <div class="bodywrapper">
3271+ <div class="body">
3272+
3273+
3274+ <h1 id="index">Index</h1>
3275+
3276+ <a href="#A"><strong>A</strong></a> | <a href="#B"><strong>B</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#F"><strong>F</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#H"><strong>H</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#N"><strong>N</strong></a> | <a href="#O"><strong>O</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#Q"><strong>Q</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> | <a href="#U"><strong>U</strong></a> | <a href="#V"><strong>V</strong></a> | <a href="#W"><strong>W</strong></a> | <a href="#X"><strong>X</strong></a> | <a href="#Y"><strong>Y</strong></a> | <a href="#Z"><strong>Z</strong></a>
3277+
3278+ <hr />
3279+
3280+
3281+<h2 id="A">A</h2>
3282+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3283+<dl>
3284+
3285+<dt><a href="gluon/gluon.html#gluon.html.A">A (class in gluon.html)</a></dt>
3286+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.accept">accept() (gluon.wsgiserver.SSLConnection method)</a></dt>
3287+<dt><a href="gluon/gluon.html#gluon.html.FORM.accepts">accepts() (gluon.html.FORM method)</a></dt>
3288+ <dd><dl>
3289+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.SQLFORM.accepts">(gluon.sqlhtml.SQLFORM method)</a></dt>
3290+ </dl></dd>
3291+<dt><a href="gluon/gluon.html#gluon.tools.Auth.accessible_query">accessible_query() (gluon.tools.Auth method)</a></dt>
3292+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.add">add() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3293+<dt><a href="gluon/gluon.html#gluon.tools.Auth.add_group">add_group() (gluon.tools.Auth method)</a></dt>
3294+<dt><a href="gluon/gluon.html#gluon.tools.Auth.add_membership">add_membership() (gluon.tools.Auth method)</a></dt>
3295+<dt><a href="gluon/gluon.html#gluon.tools.Auth.add_permission">add_permission() (gluon.tools.Auth method)</a></dt>
3296+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.AddRow">AddRow() (gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3297+<dt><a href="gluon/gluon.html#gluon.tools.Service.amfrpc">amfrpc() (gluon.tools.Service method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3298+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.append">append() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
3299+ <dd><dl>
3300+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Inline.append">(gluon.contrib.pyrtf.Elements.Inline method)</a></dt>
3301+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Paragraph.append">(gluon.contrib.pyrtf.Elements.Paragraph method)</a></dt>
3302+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.append">(gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3303+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.AttributedList.append">(gluon.contrib.pyrtf.PropertySets.AttributedList method)</a></dt>
3304+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Settings.append">(gluon.contrib.pyrtf.Renderer.Settings method)</a></dt>
3305+ <dt><a href="gluon/gluon.html#gluon.html.DIV.append">(gluon.html.DIV method)</a></dt>
3306+ </dl></dd>
3307+<dt><a href="gluon/gluon.html#gluon.main.appfactory">appfactory() (in module gluon.main)</a></dt>
3308+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.AttributedList">AttributedList (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3309+<dt><a href="gluon/gluon.html#gluon.tools.Auth">Auth (class in gluon.tools)</a></dt>
3310+</dl></td></tr></table>
3311+
3312+<h2 id="B">B</h2>
3313+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3314+<dl>
3315+
3316+<dt><a href="gluon/gluon.html#gluon.html.B">B (class in gluon.html)</a></dt>
3317+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.B">B() (in module gluon.contrib.pyrtf.Elements)</a></dt>
3318+<dt><a href="gluon/gluon.html#gluon.html.BEAUTIFY">BEAUTIFY (class in gluon.html)</a></dt>
3319+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.bind">bind() (gluon.wsgiserver.CherryPyWSGIServer method)</a></dt>
3320+ <dd><dl>
3321+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.bind">(gluon.wsgiserver.SSLConnection method)</a></dt>
3322+ </dl></dd>
3323+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.bind_addr">bind_addr (gluon.wsgiserver.CherryPyWSGIServer attribute)</a></dt>
3324+<dt><a href="gluon/gluon.html#gluon.html.BODY">BODY (class in gluon.html)</a></dt></dl></td><td width="33%" valign="top"><dl>
3325+<dt><a href="gluon/gluon.html#gluon.sqlhtml.BooleanWidget">BooleanWidget (class in gluon.sqlhtml)</a></dt>
3326+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPropertySet">BorderPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3327+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPS">BorderPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
3328+<dt><a href="gluon/gluon.html#gluon.html.BR">BR (class in gluon.html)</a></dt>
3329+<dt><a href="gluon/gluon.html#gluon.compileapp.build_environment">build_environment() (in module gluon.compileapp)</a></dt>
3330+<dt><a href="gluon/gluon.html#gluon.validators.IS_IN_DB.build_set">build_set() (gluon.validators.IS_IN_DB method)</a></dt>
3331+</dl></td></tr></table>
3332+
3333+<h2 id="C">C</h2>
3334+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3335+<dl>
3336+
3337+<dt><a href="gluon/gluon.html#gluon.cache.Cache">Cache (class in gluon.cache)</a></dt>
3338+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell">Cell (class in gluon.contrib.pyrtf.Elements)</a></dt>
3339+<dt><a href="gluon/gluon.html#gluon.html.CENTER">CENTER (class in gluon.html)</a></dt>
3340+<dt><a href="gluon/gluon.html#gluon.tools.Auth.change_password">change_password() (gluon.tools.Auth method)</a></dt>
3341+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.CharacterEncodingOverride">CharacterEncodingOverride</a></dt>
3342+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.CharacterEncodingUnknown">CharacterEncodingUnknown</a></dt>
3343+<dt><a href="gluon/gluon.html#gluon.fileutils.check_credentials">check_credentials() (in module gluon.fileutils)</a></dt>
3344+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.check_key">check_key() (in module gluon.contrib.memcache.memcache)</a></dt>
3345+<dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.checkTaskBar">checkTaskBar() (gluon.widget.web2pyDialog method)</a></dt>
3346+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer">CherryPyWSGIServer (class in gluon.wsgiserver)</a></dt>
3347+<dt><a href="gluon/gluon.html#gluon.fileutils.cleanpath">cleanpath() (in module gluon.fileutils)</a></dt>
3348+<dt><a href="gluon/gluon.html#gluon.validators.CLEANUP">CLEANUP (class in gluon.validators)</a></dt>
3349+<dt><a href="glossary.html#term-cli">CLI</a></dt>
3350+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client">Client (class in gluon.contrib.memcache.memcache)</a></dt>
3351+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.MemcachedKeyCharacterError">Client.MemcachedKeyCharacterError</a></dt>
3352+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.MemcachedKeyError">Client.MemcachedKeyError</a></dt>
3353+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.MemcachedKeyLengthError">Client.MemcachedKeyLengthError</a></dt>
3354+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.MemcachedStringEncodingError">Client.MemcachedStringEncodingError</a></dt>
3355+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPConnection.close">close() (gluon.wsgiserver.HTTPConnection method)</a></dt>
3356+ <dd><dl>
3357+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.close">(gluon.wsgiserver.SSLConnection method)</a></dt>
3358+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.close">(gluon.wsgiserver.SSL_fileobject method)</a></dt>
3359+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper.close">(gluon.wsgiserver.SizeCheckWrapper method)</a></dt>
3360+ </dl></dd>
3361+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.close_all_instances">close_all_instances() (gluon.sql.SQLDB static method)</a></dt>
3362+<dt><a href="gluon/gluon.html#gluon.html.CODE">CODE (class in gluon.html)</a></dt>
3363+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colour">Colour (class in gluon.contrib.pyrtf.PropertySets)</a></dt></dl></td><td width="33%" valign="top"><dl>
3364+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colours">Colours (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3365+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.commit">commit() (gluon.sql.SQLDB method)</a></dt>
3366+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPConnection.communicate">communicate() (gluon.wsgiserver.HTTPConnection method)</a></dt>
3367+<dt><a href="gluon/gluon.html#gluon.compileapp.compile_application">compile_application() (in module gluon.compileapp)</a></dt>
3368+<dt><a href="gluon/gluon.html#gluon.compileapp.compile_controllers">compile_controllers() (in module gluon.compileapp)</a></dt>
3369+<dt><a href="gluon/gluon.html#gluon.compileapp.compile_models">compile_models() (in module gluon.compileapp)</a></dt>
3370+<dt><a href="gluon/gluon.html#gluon.compileapp.compile_views">compile_views() (in module gluon.compileapp)</a></dt>
3371+<dt><a href="gluon/gluon.html#gluon.globals.Session.connect">connect() (gluon.globals.Session method)</a></dt>
3372+ <dd><dl>
3373+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.connect">(gluon.wsgiserver.SSLConnection method)</a></dt>
3374+ </dl></dd>
3375+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.connect_ex">connect_ex() (gluon.wsgiserver.SSLConnection method)</a></dt>
3376+<dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.connect_pages">connect_pages() (gluon.widget.web2pyDialog method)</a></dt>
3377+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.ConnectionClass">ConnectionClass (gluon.wsgiserver.CherryPyWSGIServer attribute)</a></dt>
3378+<dt><a href="gluon/gluon.html#gluon.widget.console">console() (in module gluon.widget)</a></dt>
3379+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.Markdown.convert">convert() (gluon.contrib.markdown.markdown2.Markdown method)</a></dt>
3380+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Document.Copy">Copy() (gluon.contrib.pyrtf.Elements.Document method)</a></dt>
3381+ <dd><dl>
3382+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.Copy">(gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3383+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.Copy">(gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3384+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.Copy">(gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3385+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.TextStyle.Copy">(gluon.contrib.pyrtf.Styles.TextStyle method)</a></dt>
3386+ </dl></dd>
3387+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.count">count() (gluon.sql.SQLField method)</a></dt>
3388+<dt><a href="gluon/gluon.html#gluon.tools.Crud.create">create() (gluon.tools.Crud method)</a></dt>
3389+<dt><a href="gluon/gluon.html#gluon.tools.Crud">Crud (class in gluon.tools)</a></dt>
3390+<dt><a href="gluon/gluon.html#gluon.validators.CRYPT">CRYPT (class in gluon.validators)</a></dt>
3391+<dt><a href="gluon/gluon.html#gluon.tools.Service.csv">csv() (gluon.tools.Service method)</a></dt>
3392+</dl></td></tr></table>
3393+
3394+<h2 id="D">D</h2>
3395+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3396+<dl>
3397+
3398+<dt><a href="gluon/gluon.html#gluon.sqlhtml.DatetimeWidget">DatetimeWidget (class in gluon.sqlhtml)</a></dt>
3399+<dt><a href="gluon/gluon.html#gluon.sqlhtml.DateWidget">DateWidget (class in gluon.sqlhtml)</a></dt>
3400+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.day">day() (gluon.sql.SQLField method)</a></dt>
3401+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.debuglog">debuglog() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3402+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.decoder.JSONDecoder.decode">decode() (gluon.contrib.simplejson.decoder.JSONDecoder method)</a></dt>
3403+ <dd><dl>
3404+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONDecoder.decode">(gluon.contrib.simplejson.JSONDecoder method)</a></dt>
3405+ </dl></dd>
3406+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.decode_chunked">decode_chunked() (gluon.wsgiserver.HTTPRequest method)</a></dt>
3407+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.decr">decr() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3408+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.JSONEncoder.default">default() (gluon.contrib.simplejson.encoder.JSONEncoder method)</a></dt>
3409+ <dd><dl>
3410+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONEncoder.default">(gluon.contrib.simplejson.JSONEncoder method)</a></dt>
3411+ </dl></dd>
3412+<dt><a href="gluon/gluon.html#gluon.tools.DEFAULT">DEFAULT() (in module gluon.tools)</a></dt>
3413+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.memdb.MEMDB.define_table">define_table() (gluon.contrib.memdb.MEMDB method)</a></dt>
3414+ <dd><dl>
3415+ <dt><a href="gluon/gluon.html#gluon.sql.SQLDB.define_table">(gluon.sql.SQLDB method)</a></dt>
3416+ </dl></dd>
3417+<dt><a href="gluon/gluon.html#gluon.tools.Auth.define_tables">define_tables() (gluon.tools.Auth method)</a></dt>
3418+<dt><a href="gluon/gluon.html#gluon.tools.Auth.del_group">del_group() (gluon.tools.Auth method)</a></dt>
3419+<dt><a href="gluon/gluon.html#gluon.tools.Auth.del_membership">del_membership() (gluon.tools.Auth method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3420+<dt><a href="gluon/gluon.html#gluon.tools.Auth.del_permission">del_permission() (gluon.tools.Auth method)</a></dt>
3421+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.delete">delete() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3422+ <dd><dl>
3423+ <dt><a href="gluon/gluon.html#gluon.tools.Crud.delete">(gluon.tools.Crud method)</a></dt>
3424+ </dl></dd>
3425+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.delete_multi">delete_multi() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3426+<dt><a href="gluon/gluon.html#gluon.shell.die">die() (in module gluon.shell)</a></dt>
3427+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.disconnect_all">disconnect_all() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3428+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.distributed_transaction_commit">distributed_transaction_commit() (gluon.sql.SQLDB static method)</a></dt>
3429+<dt><a href="gluon/gluon.html#gluon.html.DIV">DIV (class in gluon.html)</a></dt>
3430+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Document">Document (class in gluon.contrib.pyrtf.Elements)</a></dt>
3431+<dt><a href="gluon/gluon.html#gluon.sqlhtml.DoubleWidget">DoubleWidget (class in gluon.sqlhtml)</a></dt>
3432+<dt><a href="gluon/gluon.html#gluon.globals.Response.download">download() (gluon.globals.Response method)</a></dt>
3433+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.dump">dump() (in module gluon.contrib.simplejson)</a></dt>
3434+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.dumps">dumps() (in module gluon.contrib.pyrtf)</a></dt>
3435+ <dd><dl>
3436+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.dumps">(in module gluon.contrib.simplejson)</a></dt>
3437+ </dl></dd>
3438+<dt><a href="glossary.html#term-dvcs">DVCS</a></dt>
3439+</dl></td></tr></table>
3440+
3441+<h2 id="E">E</h2>
3442+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3443+<dl>
3444+
3445+<dt><a href="gluon/gluon.html#gluon.html.DIV.element">element() (gluon.html.DIV method)</a></dt>
3446+<dt><a href="gluon/gluon.html#gluon.html.EM">EM (class in gluon.html)</a></dt>
3447+<dt><a href="gluon/gluon.html#gluon.html.EMBED">EMBED (class in gluon.html)</a></dt>
3448+<dt><a href="gluon/gluon.html#gluon.html.embed64">embed64() (in module gluon.html)</a></dt>
3449+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.JSONEncoder.encode">encode() (gluon.contrib.simplejson.encoder.JSONEncoder method)</a></dt>
3450+ <dd><dl>
3451+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONEncoder.encode">(gluon.contrib.simplejson.JSONEncoder method)</a></dt>
3452+ </dl></dd>
3453+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.encode_basestring">encode_basestring() (in module gluon.contrib.simplejson.encoder)</a></dt>
3454+<dt><a href="gluon/gluon.html#gluon.shell.env">env() (in module gluon.shell)</a></dt></dl></td><td width="33%" valign="top"><dl>
3455+<dt><a href="gluon/gluon.html#gluon.tools.Service.error">error() (gluon.tools.Service method)</a></dt>
3456+ <dd><dl>
3457+ <dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.error">(gluon.widget.web2pyDialog method)</a></dt>
3458+ </dl></dd>
3459+<dt><a href="gluon/gluon.html#gluon.shell.exec_environment">exec_environment() (in module gluon.shell)</a></dt>
3460+<dt><a href="gluon/gluon.html#gluon.shell.exec_pythonrc">exec_pythonrc() (in module gluon.shell)</a></dt>
3461+<dt><a href="gluon/gluon.html#gluon.shell.execute_from_command_line">execute_from_command_line() (in module gluon.shell)</a></dt>
3462+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.executesql">executesql() (gluon.sql.SQLDB method)</a></dt>
3463+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.export_to_csv_file">export_to_csv_file() (gluon.sql.SQLDB method)</a></dt>
3464+</dl></td></tr></table>
3465+
3466+<h2 id="F">F</h2>
3467+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3468+<dl>
3469+
3470+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.FeedParserDict">FeedParserDict (class in gluon.contrib.feedparser)</a></dt>
3471+<dt><a href="gluon/gluon.html#gluon.tools.fetch">fetch() (in module gluon.tools)</a></dt>
3472+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.memdb.MEMDB.Field">Field (gluon.contrib.memdb.MEMDB attribute)</a></dt>
3473+ <dd><dl>
3474+ <dt><a href="gluon/gluon.html#gluon.sql.SQLDB.Field">(gluon.sql.SQLDB attribute)</a></dt>
3475+ </dl></dd>
3476+<dt><a href="gluon/gluon.html#gluon.html.FIELDSET">FIELDSET (class in gluon.html)</a></dt>
3477+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.fileno">fileno() (gluon.wsgiserver.SSLConnection method)</a></dt>
3478+<dt><a href="gluon/gluon.html#gluon.languages.findT">findT() (in module gluon.languages)</a></dt>
3479+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.flush">flush() (gluon.wsgiserver.SSL_fileobject method)</a></dt>
3480+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.flush_all">flush_all() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3481+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font">Font (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3482+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Fonts">Fonts (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3483+<dt><a href="gluon/gluon.html#gluon.languages.translator.force">force() (gluon.languages.translator method)</a></dt>
3484+<dt><a href="gluon/gluon.html#gluon.globals.Session.forget">forget() (gluon.globals.Session method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3485+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.forget_dead_hosts">forget_dead_hosts() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3486+<dt><a href="gluon/gluon.html#gluon.html.FORM">FORM (class in gluon.html)</a></dt>
3487+<dt><a href="gluon/gluon.html#gluon.sqlhtml.form_factory">form_factory() (in module gluon.sqlhtml)</a></dt>
3488+<dt><a href="gluon/gluon.html#gluon.wsgiserver.format_exc">format_exc() (in module gluon.wsgiserver)</a></dt>
3489+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.memdb.SQLField.formatter">formatter() (gluon.contrib.memdb.SQLField method)</a></dt>
3490+ <dd><dl>
3491+ <dt><a href="gluon/gluon.html#gluon.sql.SQLField.formatter">(gluon.sql.SQLField method)</a></dt>
3492+ <dt><a href="gluon/gluon.html#gluon.validators.IS_DATE.formatter">(gluon.validators.IS_DATE method)</a></dt>
3493+ <dt><a href="gluon/gluon.html#gluon.validators.IS_DATETIME.formatter">(gluon.validators.IS_DATETIME method)</a></dt>
3494+ <dt><a href="gluon/gluon.html#gluon.validators.IS_NULL_OR.formatter">(gluon.validators.IS_NULL_OR method)</a></dt>
3495+ </dl></dd>
3496+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePropertySet">FramePropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3497+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePS">FramePS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
3498+</dl></td></tr></table>
3499+
3500+<h2 id="G">G</h2>
3501+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3502+<dl>
3503+
3504+<dt><a href="gluon/gluon.html#gluon.tools.geocode">geocode() (in module gluon.tools)</a></dt>
3505+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.FeedParserDict.get">get() (gluon.contrib.feedparser.FeedParserDict method)</a></dt>
3506+ <dd><dl>
3507+ <dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.get">(gluon.contrib.memcache.memcache.Client method)</a></dt>
3508+ </dl></dd>
3509+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.get_app_data">get_app_data() (gluon.wsgiserver.SSLConnection method)</a></dt>
3510+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.get_cipher_list">get_cipher_list() (gluon.wsgiserver.SSLConnection method)</a></dt>
3511+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.get_context">get_context() (gluon.wsgiserver.SSLConnection method)</a></dt>
3512+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.get_multi">get_multi() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3513+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.get_peer_certificate">get_peer_certificate() (gluon.wsgiserver.SSLConnection method)</a></dt>
3514+<dt><a href="gluon/gluon.html#gluon.fileutils.get_session">get_session() (in module gluon.fileutils)</a></dt>
3515+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.get_stats">get_stats() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3516+<dt><a href="gluon/gluon.html#gluon.shell.get_usage">get_usage() (in module gluon.shell)</a></dt>
3517+<dt><a href="gluon/gluon.html#gluon.compileapp.getcfs">getcfs() (in module gluon.compileapp)</a></dt>
3518+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.getpeername">getpeername() (gluon.wsgiserver.SSLConnection method)</a></dt>
3519+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.getsockname">getsockname() (gluon.wsgiserver.SSLConnection method)</a></dt>
3520+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.getsockopt">getsockopt() (gluon.wsgiserver.SSLConnection method)</a></dt>
3521+<dt><a href="gluon/gluon.html#module-gluon.cache">gluon.cache (module)</a></dt>
3522+<dt><a href="gluon/gluon.html#module-gluon.compileapp">gluon.compileapp (module)</a></dt>
3523+<dt><a href="gluon/gluon.html#module-gluon.contenttype">gluon.contenttype (module)</a></dt>
3524+<dt><a href="gluon/gluon.contrib.html#module-gluon.contrib.cron">gluon.contrib.cron (module)</a></dt>
3525+<dt><a href="gluon/gluon.contrib.html#module-gluon.contrib.feedparser">gluon.contrib.feedparser (module)</a></dt>
3526+<dt><a href="gluon/gluon.contrib.gateways.html#module-gluon.contrib.gateways.fcgi">gluon.contrib.gateways.fcgi (module)</a></dt>
3527+<dt><a href="gluon/gluon.contrib.markdown.html#module-gluon.contrib.markdown">gluon.contrib.markdown (module)</a></dt>
3528+<dt><a href="gluon/gluon.contrib.markdown.html#module-gluon.contrib.markdown.markdown2">gluon.contrib.markdown.markdown2 (module)</a></dt>
3529+<dt><a href="gluon/gluon.contrib.memcache.html#module-gluon.contrib.memcache">gluon.contrib.memcache (module)</a></dt>
3530+<dt><a href="gluon/gluon.contrib.memcache.html#module-gluon.contrib.memcache.memcache">gluon.contrib.memcache.memcache (module)</a></dt>
3531+<dt><a href="gluon/gluon.contrib.html#module-gluon.contrib.memdb">gluon.contrib.memdb (module)</a></dt>
3532+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf">gluon.contrib.pyrtf (module)</a></dt>
3533+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Constants">gluon.contrib.pyrtf.Constants (module)</a></dt>
3534+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Elements">gluon.contrib.pyrtf.Elements (module)</a></dt>
3535+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.PropertySets">gluon.contrib.pyrtf.PropertySets (module)</a></dt>
3536+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Renderer">gluon.contrib.pyrtf.Renderer (module)</a></dt>
3537+<dt><a href="gluon/gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Styles">gluon.contrib.pyrtf.Styles (module)</a></dt></dl></td><td width="33%" valign="top"><dl>
3538+<dt><a href="gluon/gluon.contrib.html#module-gluon.contrib.rss2">gluon.contrib.rss2 (module)</a></dt>
3539+<dt><a href="gluon/gluon.contrib.simplejson.html#module-gluon.contrib.simplejson">gluon.contrib.simplejson (module)</a></dt>
3540+<dt><a href="gluon/gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.decoder">gluon.contrib.simplejson.decoder (module)</a></dt>
3541+<dt><a href="gluon/gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.encoder">gluon.contrib.simplejson.encoder (module)</a></dt>
3542+<dt><a href="gluon/gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.scanner">gluon.contrib.simplejson.scanner (module)</a></dt>
3543+<dt><a href="gluon/gluon.contrib.html#module-gluon.contrib.wsgihooks">gluon.contrib.wsgihooks (module)</a></dt>
3544+<dt><a href="gluon/gluon.html#module-gluon.fileutils">gluon.fileutils (module)</a></dt>
3545+<dt><a href="gluon/gluon.html#module-gluon.globals">gluon.globals (module)</a></dt>
3546+<dt><a href="gluon/gluon.html#module-gluon.highlight">gluon.highlight (module)</a></dt>
3547+<dt><a href="gluon/gluon.html#module-gluon.html">gluon.html (module)</a></dt>
3548+<dt><a href="gluon/gluon.html#module-gluon.http">gluon.http (module)</a></dt>
3549+<dt><a href="gluon/gluon.html#module-gluon.languages">gluon.languages (module)</a></dt>
3550+<dt><a href="gluon/gluon.html#module-gluon.main">gluon.main (module)</a></dt>
3551+<dt><a href="gluon/gluon.html#module-gluon.restricted">gluon.restricted (module)</a></dt>
3552+<dt><a href="gluon/gluon.html#module-gluon.rewrite">gluon.rewrite (module)</a></dt>
3553+<dt><a href="gluon/gluon.html#module-gluon.sanitizer">gluon.sanitizer (module)</a></dt>
3554+<dt><a href="gluon/gluon.html#module-gluon.shell">gluon.shell (module)</a></dt>
3555+<dt><a href="gluon/gluon.html#module-gluon.sql">gluon.sql (module)</a></dt>
3556+<dt><a href="gluon/gluon.html#module-gluon.sqlhtml">gluon.sqlhtml (module)</a></dt>
3557+<dt><a href="gluon/gluon.html#module-gluon.storage">gluon.storage (module)</a></dt>
3558+<dt><a href="gluon/gluon.html#module-gluon.streamer">gluon.streamer (module)</a></dt>
3559+<dt><a href="gluon/gluon.html#module-gluon.template">gluon.template (module)</a></dt>
3560+<dt><a href="gluon/gluon.html#module-gluon.tools">gluon.tools (module)</a></dt>
3561+<dt><a href="gluon/gluon.html#module-gluon.utils">gluon.utils (module)</a></dt>
3562+<dt><a href="gluon/gluon.html#module-gluon.validators">gluon.validators (module)</a></dt>
3563+<dt><a href="gluon/gluon.html#module-gluon.widget">gluon.widget (module)</a></dt>
3564+<dt><a href="gluon/gluon.html#module-gluon.wsgiserver">gluon.wsgiserver (module)</a></dt>
3565+<dt><a href="gluon/gluon.html#module-gluon.xmlrpc">gluon.xmlrpc (module)</a></dt>
3566+<dt><a href="gluon/gluon.html#gluon.tools.Auth.gmail_login">gmail_login() (gluon.tools.Auth method)</a></dt>
3567+<dt><a href="gluon/gluon.html#gluon.tools.Auth.groups">groups() (gluon.tools.Auth method)</a></dt>
3568+<dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.grow">grow() (gluon.wsgiserver.ThreadPool method)</a></dt>
3569+</dl></td></tr></table>
3570+
3571+<h2 id="H">H</h2>
3572+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3573+<dl>
3574+
3575+<dt><a href="gluon/gluon.html#gluon.html.H1">H1 (class in gluon.html)</a></dt>
3576+<dt><a href="gluon/gluon.html#gluon.html.H2">H2 (class in gluon.html)</a></dt>
3577+<dt><a href="gluon/gluon.html#gluon.html.H3">H3 (class in gluon.html)</a></dt>
3578+<dt><a href="gluon/gluon.html#gluon.html.H4">H4 (class in gluon.html)</a></dt>
3579+<dt><a href="gluon/gluon.html#gluon.html.H5">H5 (class in gluon.html)</a></dt>
3580+<dt><a href="gluon/gluon.html#gluon.html.H6">H6 (class in gluon.html)</a></dt>
3581+<dt><a href="gluon/gluon.contrib.gateways.html#gluon.contrib.gateways.fcgi.WSGIServer.handler">handler() (gluon.contrib.gateways.fcgi.WSGIServer method)</a></dt>
3582+ <dd><dl>
3583+ <dt><a href="gluon/gluon.html#gluon.xmlrpc.handler">(in module gluon.xmlrpc)</a></dt>
3584+ </dl></dd>
3585+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.FeedParserDict.has_key">has_key() (gluon.contrib.feedparser.FeedParserDict method)</a></dt>
3586+<dt><a href="gluon/gluon.html#gluon.tools.Auth.has_membership">has_membership() (gluon.tools.Auth method)</a></dt>
3587+<dt><a href="gluon/gluon.html#gluon.sqlhtml.OptionsWidget.has_options">has_options() (gluon.sqlhtml.OptionsWidget static method)</a></dt>
3588+<dt><a href="gluon/gluon.html#gluon.tools.Auth.has_permission">has_permission() (gluon.tools.Auth method)</a></dt>
3589+ <dd><dl>
3590+ <dt><a href="gluon/gluon.html#gluon.tools.Crud.has_permission">(gluon.tools.Crud method)</a></dt>
3591+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
3592+<dt><a href="gluon/gluon.html#gluon.utils.hash">hash() (in module gluon.utils)</a></dt>
3593+<dt><a href="gluon/gluon.html#gluon.html.HEAD">HEAD (class in gluon.html)</a></dt>
3594+<dt><a href="gluon/gluon.html#gluon.html.FORM.hidden_fields">hidden_fields() (gluon.html.FORM method)</a></dt>
3595+<dt><a href="gluon/gluon.html#gluon.highlight.highlight">highlight() (in module gluon.highlight)</a></dt>
3596+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.hour">hour() (gluon.sql.SQLField method)</a></dt>
3597+<dt><a href="gluon/gluon.html#gluon.html.HR">HR (class in gluon.html)</a></dt>
3598+<dt><a href="gluon/gluon.html#gluon.html.HTML">HTML (class in gluon.html)</a></dt>
3599+<dt><a href="gluon/gluon.html#gluon.http.HTTP">HTTP</a></dt>
3600+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPConnection">HTTPConnection (class in gluon.wsgiserver)</a></dt>
3601+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest">HTTPRequest (class in gluon.wsgiserver)</a></dt>
3602+<dt><a href="gluon/gluon.html#gluon.main.HttpServer">HttpServer (class in gluon.main)</a></dt>
3603+</dl></td></tr></table>
3604+
3605+<h2 id="I">I</h2>
3606+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3607+<dl>
3608+
3609+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.I">I() (in module gluon.contrib.pyrtf.Elements)</a></dt>
3610+<dt><a href="gluon/gluon.html#gluon.tools.Auth.id_group">id_group() (gluon.tools.Auth method)</a></dt>
3611+<dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.idle">idle (gluon.wsgiserver.ThreadPool attribute)</a></dt>
3612+<dt><a href="gluon/gluon.html#gluon.html.IFRAME">IFRAME (class in gluon.html)</a></dt>
3613+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Image">Image (class in gluon.contrib.pyrtf.Elements)</a></dt>
3614+<dt><a href="gluon/gluon.html#gluon.html.IMG">IMG (class in gluon.html)</a></dt>
3615+<dt><a href="gluon/gluon.html#gluon.tools.Auth.impersonate">impersonate() (gluon.tools.Auth method)</a></dt>
3616+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.import_from_csv_file">import_from_csv_file() (gluon.sql.SQLDB method)</a></dt>
3617+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.incr">incr() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3618+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.MemcacheClient.increment">increment() (gluon.contrib.memcache.MemcacheClient method)</a></dt>
3619+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Inline">Inline (class in gluon.contrib.pyrtf.Elements)</a></dt>
3620+<dt><a href="gluon/gluon.html#gluon.html.INPUT">INPUT (class in gluon.html)</a></dt>
3621+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Paragraph.insert">insert() (gluon.contrib.pyrtf.Elements.Paragraph method)</a></dt>
3622+ <dd><dl>
3623+ <dt><a href="gluon/gluon.html#gluon.html.DIV.insert">(gluon.html.DIV method)</a></dt>
3624+ </dl></dd>
3625+<dt><a href="gluon/gluon.html#gluon.sqlhtml.IntegerWidget">IntegerWidget (class in gluon.sqlhtml)</a></dt>
3626+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.interrupt">interrupt (gluon.wsgiserver.CherryPyWSGIServer attribute)</a></dt>
3627+<dt><a href="gluon/gluon.html#gluon.widget.IO">IO (class in gluon.widget)</a></dt>
3628+<dt><a href="gluon/gluon.html#gluon.validators.IS_ALPHANUMERIC">IS_ALPHANUMERIC (class in gluon.validators)</a></dt>
3629+<dt><a href="gluon/gluon.html#gluon.validators.IS_DATE">IS_DATE (class in gluon.validators)</a></dt>
3630+<dt><a href="gluon/gluon.html#gluon.validators.IS_DATETIME">IS_DATETIME (class in gluon.validators)</a></dt>
3631+<dt><a href="gluon/gluon.html#gluon.validators.IS_EMAIL">IS_EMAIL (class in gluon.validators)</a></dt>
3632+<dt><a href="gluon/gluon.html#gluon.validators.IS_EXPR">IS_EXPR (class in gluon.validators)</a></dt>
3633+<dt><a href="gluon/gluon.html#gluon.validators.IS_FLOAT_IN_RANGE">IS_FLOAT_IN_RANGE (class in gluon.validators)</a></dt></dl></td><td width="33%" valign="top"><dl>
3634+<dt><a href="gluon/gluon.html#gluon.sqlhtml.UploadWidget.is_image">is_image() (gluon.sqlhtml.UploadWidget static method)</a></dt>
3635+<dt><a href="gluon/gluon.html#gluon.tools.Auth.is_impersonating">is_impersonating() (gluon.tools.Auth method)</a></dt>
3636+<dt><a href="gluon/gluon.html#gluon.validators.IS_IN_DB">IS_IN_DB (class in gluon.validators)</a></dt>
3637+<dt><a href="gluon/gluon.html#gluon.validators.IS_IN_SET">IS_IN_SET (class in gluon.validators)</a></dt>
3638+<dt><a href="gluon/gluon.html#gluon.validators.IS_INT_IN_RANGE">IS_INT_IN_RANGE (class in gluon.validators)</a></dt>
3639+<dt><a href="gluon/gluon.html#gluon.validators.IS_LENGTH">IS_LENGTH (class in gluon.validators)</a></dt>
3640+<dt><a href="gluon/gluon.html#gluon.validators.IS_LIST_OF">IS_LIST_OF (class in gluon.validators)</a></dt>
3641+<dt><a href="gluon/gluon.html#gluon.tools.Auth.is_logged_in">is_logged_in() (gluon.tools.Auth method)</a></dt>
3642+<dt><a href="gluon/gluon.html#gluon.validators.IS_LOWER">IS_LOWER (class in gluon.validators)</a></dt>
3643+<dt><a href="gluon/gluon.html#gluon.validators.IS_MATCH">IS_MATCH (class in gluon.validators)</a></dt>
3644+<dt><a href="gluon/gluon.html#gluon.validators.IS_NOT_EMPTY">IS_NOT_EMPTY (class in gluon.validators)</a></dt>
3645+<dt><a href="gluon/gluon.html#gluon.validators.IS_NOT_IN_DB">IS_NOT_IN_DB (class in gluon.validators)</a></dt>
3646+<dt><a href="gluon/gluon.html#gluon.validators.IS_NULL_OR">IS_NULL_OR (class in gluon.validators)</a></dt>
3647+<dt><a href="gluon/gluon.html#gluon.validators.IS_TIME">IS_TIME (class in gluon.validators)</a></dt>
3648+<dt><a href="gluon/gluon.html#gluon.validators.IS_UPPER">IS_UPPER (class in gluon.validators)</a></dt>
3649+<dt><a href="gluon/gluon.html#gluon.validators.IS_URL">IS_URL (class in gluon.validators)</a></dt>
3650+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.Languages.IsValid">IsValid() (gluon.contrib.pyrtf.Constants.Languages class method)</a></dt>
3651+ <dd><dl>
3652+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewKind.IsValid">(gluon.contrib.pyrtf.Constants.ViewKind class method)</a></dt>
3653+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewScale.IsValid">(gluon.contrib.pyrtf.Constants.ViewScale class method)</a></dt>
3654+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewZoomKind.IsValid">(gluon.contrib.pyrtf.Constants.ViewZoomKind class method)</a></dt>
3655+ </dl></dd>
3656+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.JSONEncoder.iterencode">iterencode() (gluon.contrib.simplejson.encoder.JSONEncoder method)</a></dt>
3657+ <dd><dl>
3658+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONEncoder.iterencode">(gluon.contrib.simplejson.JSONEncoder method)</a></dt>
3659+ </dl></dd>
3660+</dl></td></tr></table>
3661+
3662+<h2 id="J">J</h2>
3663+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3664+<dl>
3665+
3666+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Settings.Join">Join() (gluon.contrib.pyrtf.Renderer.Settings method)</a></dt>
3667+<dt><a href="gluon/gluon.html#gluon.globals.Response.json">json() (gluon.globals.Response method)</a></dt>
3668+ <dd><dl>
3669+ <dt><a href="gluon/gluon.html#gluon.tools.Service.json">(gluon.tools.Service method)</a></dt>
3670+ </dl></dd>
3671+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONDecoder">JSONDecoder (class in gluon.contrib.simplejson)</a></dt>
3672+ <dd><dl>
3673+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.decoder.JSONDecoder">(class in gluon.contrib.simplejson.decoder)</a></dt>
3674+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
3675+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONEncoder">JSONEncoder (class in gluon.contrib.simplejson)</a></dt>
3676+ <dd><dl>
3677+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.JSONEncoder">(class in gluon.contrib.simplejson.encoder)</a></dt>
3678+ </dl></dd>
3679+<dt><a href="gluon/gluon.html#gluon.tools.Service.jsonrpc">jsonrpc() (gluon.tools.Service method)</a></dt>
3680+</dl></td></tr></table>
3681+
3682+<h2 id="L">L</h2>
3683+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3684+<dl>
3685+
3686+<dt><a href="gluon/gluon.html#gluon.html.LABEL">LABEL (class in gluon.html)</a></dt>
3687+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.Languages">Languages (class in gluon.contrib.pyrtf.Constants)</a></dt>
3688+<dt><a href="gluon/gluon.html#gluon.html.LEGEND">LEGEND (class in gluon.html)</a></dt>
3689+<dt><a href="gluon/gluon.html#gluon.html.LI">LI (class in gluon.html)</a></dt>
3690+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.LINE">LINE (class in gluon.contrib.pyrtf.Elements)</a></dt>
3691+<dt><a href="gluon/gluon.html#gluon.html.LINK">LINK (class in gluon.html)</a></dt>
3692+<dt><a href="gluon/gluon.html#gluon.fileutils.listdir">listdir() (in module gluon.fileutils)</a></dt>
3693+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.listen">listen() (gluon.wsgiserver.SSLConnection method)</a></dt>
3694+<dt><a href="gluon/gluon.html#gluon.restricted.RestrictedError.load">load() (gluon.restricted.RestrictedError method)</a></dt>
3695+ <dd><dl>
3696+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.load">(in module gluon.contrib.simplejson)</a></dt>
3697+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
3698+<dt><a href="gluon/gluon.html#gluon.storage.load_storage">load_storage() (in module gluon.storage)</a></dt>
3699+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.loads">loads() (in module gluon.contrib.simplejson)</a></dt>
3700+<dt><a href="gluon/gluon.html#gluon.restricted.RestrictedError.log">log() (gluon.restricted.RestrictedError method)</a></dt>
3701+<dt><a href="gluon/gluon.html#gluon.tools.Auth.log_event">log_event() (gluon.tools.Auth method)</a></dt>
3702+ <dd><dl>
3703+ <dt><a href="gluon/gluon.html#gluon.tools.Crud.log_event">(gluon.tools.Crud method)</a></dt>
3704+ </dl></dd>
3705+<dt><a href="gluon/gluon.html#gluon.tools.Auth.login">login() (gluon.tools.Auth method)</a></dt>
3706+<dt><a href="gluon/gluon.html#gluon.tools.Auth.logout">logout() (gluon.tools.Auth method)</a></dt>
3707+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.lower">lower() (gluon.sql.SQLField method)</a></dt>
3708+</dl></td></tr></table>
3709+
3710+<h2 id="M">M</h2>
3711+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3712+<dl>
3713+
3714+<dt><a href="gluon/gluon.html#gluon.tools.Mail">Mail (class in gluon.tools)</a></dt>
3715+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.main">main() (in module gluon.contrib.markdown.markdown2)</a></dt>
3716+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.scanner.make_scanner">make_scanner() (in module gluon.contrib.simplejson.scanner)</a></dt>
3717+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MakeAttributeName">MakeAttributeName() (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
3718+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.MakeDefaultStyleSheet">MakeDefaultStyleSheet() (in module gluon.contrib.pyrtf.Elements)</a></dt>
3719+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.makefile">makefile() (gluon.wsgiserver.SSLConnection method)</a></dt>
3720+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPropertySet">MarginsPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3721+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPS">MarginsPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
3722+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.Markdown">Markdown (class in gluon.contrib.markdown.markdown2)</a></dt>
3723+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.markdown">markdown() (in module gluon.contrib.markdown.markdown2)</a></dt>
3724+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.markdown_path">markdown_path() (in module gluon.contrib.markdown.markdown2)</a></dt>
3725+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.MarkdownError">MarkdownError</a></dt>
3726+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.MarkdownWithExtras">MarkdownWithExtras (class in gluon.contrib.markdown.markdown2)</a></dt></dl></td><td width="33%" valign="top"><dl>
3727+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.max">max() (gluon.sql.SQLField method)</a></dt>
3728+<dt><a href="gluon/gluon.html#gluon.wsgiserver.MaxSizeExceeded">MaxSizeExceeded</a></dt>
3729+<dt><a href="gluon/gluon.html#gluon.utils.md5_hash">md5_hash() (in module gluon.utils)</a></dt>
3730+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.MemcacheClient">MemcacheClient (class in gluon.contrib.memcache)</a></dt>
3731+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.memdb.MEMDB">MEMDB (class in gluon.contrib.memdb)</a></dt>
3732+<dt><a href="gluon/gluon.html#gluon.html.MENU">MENU (class in gluon.html)</a></dt>
3733+<dt><a href="gluon/gluon.html#gluon.storage.Messages">Messages (class in gluon.storage)</a></dt>
3734+<dt><a href="gluon/gluon.html#gluon.html.META">META (class in gluon.html)</a></dt>
3735+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.min">min() (gluon.sql.SQLField method)</a></dt>
3736+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.minutes">minutes() (gluon.sql.SQLField method)</a></dt>
3737+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.month">month() (gluon.sql.SQLField method)</a></dt>
3738+<dt><a href="gluon/gluon.html#gluon.sqlhtml.MultipleOptionsWidget">MultipleOptionsWidget (class in gluon.sqlhtml)</a></dt>
3739+</dl></td></tr></table>
3740+
3741+<h2 id="N">N</h2>
3742+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3743+<dl>
3744+
3745+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Document.NewSection">NewSection() (gluon.contrib.pyrtf.Elements.Document method)</a></dt>
3746+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper.next">next() (gluon.wsgiserver.SizeCheckWrapper method)</a></dt>
3747+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.NonXMLContentType">NonXMLContentType</a></dt></dl></td><td width="33%" valign="top"><dl>
3748+<dt><a href="gluon/gluon.html#gluon.wsgiserver.NoSSLError">NoSSLError</a></dt>
3749+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.numthreads">numthreads (gluon.wsgiserver.CherryPyWSGIServer attribute)</a></dt>
3750+</dl></td></tr></table>
3751+
3752+<h2 id="O">O</h2>
3753+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3754+<dl>
3755+
3756+<dt><a href="gluon/gluon.html#gluon.html.OBJECT">OBJECT (class in gluon.html)</a></dt>
3757+<dt><a href="gluon/gluon.html#gluon.html.OL">OL (class in gluon.html)</a></dt>
3758+<dt><a href="gluon/gluon.html#gluon.html.OPTION">OPTION (class in gluon.html)</a></dt>
3759+<dt><a href="gluon/gluon.html#gluon.validators.IS_IN_DB.options">options() (gluon.validators.IS_IN_DB method)</a></dt>
3760+ <dd><dl>
3761+ <dt><a href="gluon/gluon.html#gluon.validators.IS_IN_SET.options">(gluon.validators.IS_IN_SET method)</a></dt>
3762+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
3763+<dt><a href="gluon/gluon.html#gluon.sqlhtml.OptionsWidget">OptionsWidget (class in gluon.sqlhtml)</a></dt>
3764+</dl></td></tr></table>
3765+
3766+<h2 id="P">P</h2>
3767+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3768+<dl>
3769+
3770+<dt><a href="gluon/gluon.html#gluon.html.P">P (class in gluon.html)</a></dt>
3771+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper">Paper (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3772+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Papers">Papers (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3773+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Paragraph">Paragraph (class in gluon.contrib.pyrtf.Elements)</a></dt>
3774+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet">ParagraphPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
3775+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPS">ParagraphPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
3776+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle">ParagraphStyle (class in gluon.contrib.pyrtf.Styles)</a></dt>
3777+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.parse">parse() (in module gluon.contrib.feedparser)</a></dt>
3778+ <dd><dl>
3779+ <dt><a href="gluon/gluon.html#gluon.template.parse">(in module gluon.template)</a></dt>
3780+ </dl></dd>
3781+<dt><a href="gluon/gluon.html#gluon.shell.parse_path_info">parse_path_info() (in module gluon.shell)</a></dt>
3782+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.parse_request">parse_request() (gluon.wsgiserver.HTTPRequest method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3783+<dt><a href="gluon/gluon.html#gluon.template.parse_template">parse_template() (in module gluon.template)</a></dt>
3784+<dt><a href="gluon/gluon.html#gluon.sqlhtml.PasswordWidget">PasswordWidget (class in gluon.sqlhtml)</a></dt>
3785+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.pending">pending() (gluon.wsgiserver.SSLConnection method)</a></dt>
3786+<dt><a href="gluon/gluon.html#gluon.wsgiserver.plat_specific_errors">plat_specific_errors() (in module gluon.wsgiserver)</a></dt>
3787+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.populate_ssl_environ">populate_ssl_environ() (gluon.wsgiserver.CherryPyWSGIServer method)</a></dt>
3788+<dt><a href="gluon/gluon.html#gluon.html.PRE">PRE (class in gluon.html)</a></dt>
3789+<dt><a href="gluon/gluon.html#gluon.widget.presentation">presentation() (in module gluon.widget)</a></dt>
3790+<dt><a href="gluon/gluon.html#gluon.tools.Auth.profile">profile() (gluon.tools.Auth method)</a></dt>
3791+<dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.put">put() (gluon.wsgiserver.ThreadPool method)</a></dt>
3792+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.encoder.py_encode_basestring_ascii">py_encode_basestring_ascii() (in module gluon.contrib.simplejson.encoder)</a></dt>
3793+</dl></td></tr></table>
3794+
3795+<h2 id="Q">Q</h2>
3796+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3797+<dl>
3798+
3799+<dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.quit">quit() (gluon.widget.web2pyDialog method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3800+</dl></td></tr></table>
3801+
3802+<h2 id="R">R</h2>
3803+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3804+<dl>
3805+
3806+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.random">random() (in module gluon.contrib.markdown)</a></dt>
3807+ <dd><dl>
3808+ <dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.random">(in module gluon.contrib.markdown.markdown2)</a></dt>
3809+ </dl></dd>
3810+<dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.decoder.JSONDecoder.raw_decode">raw_decode() (gluon.contrib.simplejson.decoder.JSONDecoder method)</a></dt>
3811+ <dd><dl>
3812+ <dt><a href="gluon/gluon.contrib.simplejson.html#gluon.contrib.simplejson.JSONDecoder.raw_decode">(gluon.contrib.simplejson.JSONDecoder method)</a></dt>
3813+ </dl></dd>
3814+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.RawCode">RawCode (class in gluon.contrib.pyrtf.Elements)</a></dt>
3815+<dt><a href="gluon/gluon.html#gluon.tools.Crud.read">read() (gluon.tools.Crud method)</a></dt>
3816+ <dd><dl>
3817+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.read">(gluon.wsgiserver.SSLConnection method)</a></dt>
3818+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.read">(gluon.wsgiserver.SSL_fileobject method)</a></dt>
3819+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper.read">(gluon.wsgiserver.SizeCheckWrapper method)</a></dt>
3820+ </dl></dd>
3821+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.read_headers">read_headers() (gluon.wsgiserver.HTTPRequest method)</a></dt>
3822+<dt><a href="gluon/gluon.html#gluon.compileapp.read_pyc">read_pyc() (in module gluon.compileapp)</a></dt>
3823+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper.readline">readline() (gluon.wsgiserver.SizeCheckWrapper method)</a></dt>
3824+ <dd><dl>
3825+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.readline">(gluon.wsgiserver.SSL_fileobject method)</a></dt>
3826+ </dl></dd>
3827+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper.readlines">readlines() (gluon.wsgiserver.SizeCheckWrapper method)</a></dt>
3828+ <dd><dl>
3829+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.readlines">(gluon.wsgiserver.SSL_fileobject method)</a></dt>
3830+ </dl></dd>
3831+<dt><a href="gluon/gluon.html#gluon.tools.Recaptcha">Recaptcha (class in gluon.tools)</a></dt>
3832+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.recv">recv() (gluon.wsgiserver.SSLConnection method)</a></dt>
3833+<dt><a href="gluon/gluon.html#gluon.http.redirect">redirect() (in module gluon.http)</a></dt>
3834+<dt><a href="gluon/gluon.html#gluon.tools.Auth.register">register() (gluon.tools.Auth method)</a></dt>
3835+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.registerDateHandler">registerDateHandler() (in module gluon.contrib.feedparser)</a></dt>
3836+<dt><a href="gluon/gluon.html#gluon.template.reindent">reindent() (in module gluon.template)</a></dt>
3837+<dt><a href="gluon/gluon.html#gluon.compileapp.remove_compiled_application">remove_compiled_application() (in module gluon.compileapp)</a></dt>
3838+<dt><a href="gluon/gluon.html#gluon.globals.Response.render">render() (gluon.globals.Response method)</a></dt>
3839+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer">Renderer (class in gluon.contrib.pyrtf.Renderer)</a></dt>
3840+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.renegotiate">renegotiate() (gluon.wsgiserver.SSLConnection method)</a></dt></dl></td><td width="33%" valign="top"><dl>
3841+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.replace">replace() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3842+<dt><a href="gluon/gluon.html#gluon.sqlhtml.UploadWidget.represent">represent() (gluon.sqlhtml.UploadWidget static method)</a></dt>
3843+<dt><a href="gluon/gluon.html#gluon.globals.Request">Request (class in gluon.globals)</a></dt>
3844+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPConnection.RequestHandlerClass">RequestHandlerClass (gluon.wsgiserver.HTTPConnection attribute)</a></dt>
3845+<dt><a href="gluon/gluon.html#gluon.tools.Auth.requires_login">requires_login() (gluon.tools.Auth method)</a></dt>
3846+<dt><a href="gluon/gluon.html#gluon.tools.Auth.requires_membership">requires_membership() (gluon.tools.Auth method)</a></dt>
3847+<dt><a href="gluon/gluon.html#gluon.tools.Auth.requires_permission">requires_permission() (gluon.tools.Auth method)</a></dt>
3848+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.markdown2.Markdown.reset">reset() (gluon.contrib.markdown.markdown2.Markdown method)</a></dt>
3849+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.respond">respond() (gluon.wsgiserver.HTTPRequest method)</a></dt>
3850+<dt><a href="gluon/gluon.html#gluon.globals.Response">Response (class in gluon.globals)</a></dt>
3851+<dt><a href="glossary.html#term-rest">ReSt</a></dt>
3852+<dt><a href="gluon/gluon.html#gluon.restricted.restricted">restricted() (in module gluon.restricted)</a></dt>
3853+<dt><a href="gluon/gluon.html#gluon.restricted.RestrictedError">RestrictedError (class in gluon.restricted)</a></dt>
3854+<dt><a href="gluon/gluon.html#gluon.tools.Auth.retrieve_password">retrieve_password() (gluon.tools.Auth method)</a></dt>
3855+<dt><a href="gluon/gluon.html#gluon.tools.Auth.retrieve_username">retrieve_username() (gluon.tools.Auth method)</a></dt>
3856+<dt><a href="gluon/gluon.html#gluon.rewrite.rewrite">rewrite() (in module gluon.rewrite)</a></dt>
3857+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.rollback">rollback() (gluon.sql.SQLDB method)</a></dt>
3858+<dt><a href="gluon/gluon.html#gluon.tools.Service.rss">rss() (gluon.tools.Service method)</a></dt>
3859+<dt><a href="gluon/gluon.html#gluon.tools.Service.run">run() (gluon.tools.Service method)</a></dt>
3860+ <dd><dl>
3861+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.WorkerThread.run">(gluon.wsgiserver.WorkerThread method)</a></dt>
3862+ <dt><a href="gluon/gluon.html#gluon.shell.run">(in module gluon.shell)</a></dt>
3863+ </dl></dd>
3864+<dt><a href="gluon/gluon.html#gluon.compileapp.run_controller_in">run_controller_in() (in module gluon.compileapp)</a></dt>
3865+<dt><a href="gluon/gluon.html#gluon.compileapp.run_models_in">run_models_in() (in module gluon.compileapp)</a></dt>
3866+<dt><a href="gluon/gluon.html#gluon.compileapp.run_view_in">run_view_in() (in module gluon.compileapp)</a></dt>
3867+</dl></td></tr></table>
3868+
3869+<h2 id="S">S</h2>
3870+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
3871+<dl>
3872+
3873+<dt><a href="gluon/gluon.html#gluon.sanitizer.sanitize">sanitize() (in module gluon.sanitizer)</a></dt>
3874+<dt><a href="gluon/gluon.html#gluon.main.save_password">save_password() (in module gluon.main)</a></dt>
3875+<dt><a href="gluon/gluon.html#gluon.compileapp.save_pyc">save_pyc() (in module gluon.compileapp)</a></dt>
3876+<dt><a href="gluon/gluon.html#gluon.storage.save_storage">save_storage() (in module gluon.storage)</a></dt>
3877+<dt><a href="gluon/gluon.html#gluon.html.SCRIPT">SCRIPT (class in gluon.html)</a></dt>
3878+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.seconds">seconds() (gluon.sql.SQLField method)</a></dt>
3879+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section">Section (class in gluon.contrib.pyrtf.Elements)</a></dt>
3880+<dt><a href="gluon/gluon.html#gluon.globals.Session.secure">secure() (gluon.globals.Session method)</a></dt>
3881+<dt><a href="gluon/gluon.html#gluon.html.SELECT">SELECT (class in gluon.html)</a></dt>
3882+<dt><a href="gluon/gluon.html#gluon.tools.Crud.select">select() (gluon.tools.Crud method)</a></dt>
3883+<dt><a href="gluon/gluon.html#gluon.tools.Mail.send">send() (gluon.tools.Mail method)</a></dt>
3884+ <dd><dl>
3885+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.send">(gluon.wsgiserver.SSLConnection method)</a></dt>
3886+ </dl></dd>
3887+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.send_headers">send_headers() (gluon.wsgiserver.HTTPRequest method)</a></dt>
3888+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.sendall">sendall() (gluon.wsgiserver.SSLConnection method)</a></dt>
3889+<dt><a href="gluon/gluon.html#gluon.html.MENU.serialize">serialize() (gluon.html.MENU method)</a></dt>
3890+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_amfrpc">serve_amfrpc() (gluon.tools.Service method)</a></dt>
3891+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_csv">serve_csv() (gluon.tools.Service method)</a></dt>
3892+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_json">serve_json() (gluon.tools.Service method)</a></dt>
3893+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_jsonrpc">serve_jsonrpc() (gluon.tools.Service method)</a></dt>
3894+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_rss">serve_rss() (gluon.tools.Service method)</a></dt>
3895+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_run">serve_run() (gluon.tools.Service method)</a></dt>
3896+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_xml">serve_xml() (gluon.tools.Service method)</a></dt>
3897+<dt><a href="gluon/gluon.html#gluon.tools.Service.serve_xmlrpc">serve_xmlrpc() (gluon.tools.Service method)</a></dt>
3898+<dt><a href="gluon/gluon.html#gluon.tools.Service">Service (class in gluon.tools)</a></dt>
3899+<dt><a href="gluon/gluon.html#gluon.globals.Session">Session (class in gluon.globals)</a></dt>
3900+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.set">set() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3901+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.set_accept_state">set_accept_state() (gluon.wsgiserver.SSLConnection method)</a></dt>
3902+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.set_app_data">set_app_data() (gluon.wsgiserver.SSLConnection method)</a></dt>
3903+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.set_connect_state">set_connect_state() (gluon.wsgiserver.SSLConnection method)</a></dt>
3904+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.set_multi">set_multi() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3905+<dt><a href="gluon/gluon.html#gluon.validators.IS_NOT_IN_DB.set_self_id">set_self_id() (gluon.validators.IS_NOT_IN_DB method)</a></dt>
3906+ <dd><dl>
3907+ <dt><a href="gluon/gluon.html#gluon.validators.IS_NULL_OR.set_self_id">(gluon.validators.IS_NULL_OR method)</a></dt>
3908+ </dl></dd>
3909+<dt><a href="gluon/gluon.contrib.memcache.html#gluon.contrib.memcache.memcache.Client.set_servers">set_servers() (gluon.contrib.memcache.memcache.Client method)</a></dt>
3910+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetAlignment">SetAlignment() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
3911+ <dd><dl>
3912+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.SetAlignment">(gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3913+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetAlignment">(gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3914+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TabPropertySet.SetAlignment">(gluon.contrib.pyrtf.PropertySets.TabPropertySet method)</a></dt>
3915+ </dl></dd>
3916+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetAlternate">SetAlternate() (gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3917+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPropertySet.SetBackground">SetBackground() (gluon.contrib.pyrtf.PropertySets.ShadingPropertySet method)</a></dt>
3918+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetBasedOn">SetBasedOn() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3919+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.setblocking">setblocking() (gluon.wsgiserver.SSLConnection method)</a></dt>
3920+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colour.SetBlue">SetBlue() (gluon.contrib.pyrtf.PropertySets.Colour method)</a></dt>
3921+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetBold">SetBold() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3922+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePropertySet.SetBottom">SetBottom() (gluon.contrib.pyrtf.PropertySets.FramePropertySet method)</a></dt>
3923+ <dd><dl>
3924+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPropertySet.SetBottom">(gluon.contrib.pyrtf.PropertySets.MarginsPropertySet method)</a></dt>
3925+ </dl></dd>
3926+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetBreakType">SetBreakType() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3927+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetCharacterSet">SetCharacterSet() (gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3928+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper.SetCode">SetCode() (gluon.contrib.pyrtf.PropertySets.Paper method)</a></dt>
3929+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPropertySet.SetColour">SetColour() (gluon.contrib.pyrtf.PropertySets.BorderPropertySet method)</a></dt>
3930+ <dd><dl>
3931+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetColour">(gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3932+ </dl></dd>
3933+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.SetColumnWidths">SetColumnWidths() (gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3934+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Text.SetData">SetData() (gluon.contrib.pyrtf.Elements.Text method)</a></dt>
3935+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.FeedParserDict.setdefault">setdefault() (gluon.contrib.feedparser.FeedParserDict method)</a></dt>
3936+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper.SetDescription">SetDescription() (gluon.contrib.pyrtf.PropertySets.Paper method)</a></dt>
3937+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetDottedUnderline">SetDottedUnderline() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3938+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetDoubleUnderline">SetDoubleUnderline() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3939+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetExpansion">SetExpansion() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3940+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetFamily">SetFamily() (gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3941+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetFirstLineIndent">SetFirstLineIndent() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3942+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetFirstPageNumber">SetFirstPageNumber() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3943+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetFlow">SetFlow() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
3944+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetFont">SetFont() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3945+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetFooterY">SetFooterY() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3946+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPropertySet.SetForeground">SetForeground() (gluon.contrib.pyrtf.PropertySets.ShadingPropertySet method)</a></dt>
3947+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetFrame">SetFrame() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
3948+ <dd><dl>
3949+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetFrame">(gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3950+ </dl></dd>
3951+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetFramePropertySet">SetFramePropertySet() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3952+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.SetGapBetweenCells">SetGapBetweenCells() (gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3953+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colour.SetGreen">SetGreen() (gluon.contrib.pyrtf.PropertySets.Colour method)</a></dt>
3954+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetHeaderY">SetHeaderY() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3955+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper.SetHeight">SetHeight() (gluon.contrib.pyrtf.PropertySets.Paper method)</a></dt>
3956+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetItalic">SetItalic() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3957+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetLandscape">SetLandscape() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3958+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TabPropertySet.SetLeader">SetLeader() (gluon.contrib.pyrtf.PropertySets.TabPropertySet method)</a></dt>
3959+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePropertySet.SetLeft">SetLeft() (gluon.contrib.pyrtf.PropertySets.FramePropertySet method)</a></dt>
3960+ <dd><dl>
3961+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPropertySet.SetLeft">(gluon.contrib.pyrtf.PropertySets.MarginsPropertySet method)</a></dt>
3962+ </dl></dd>
3963+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetLeftIndent">SetLeftIndent() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3964+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table.SetLeftOffset">SetLeftOffset() (gluon.contrib.pyrtf.Elements.Table method)</a></dt>
3965+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetMargins">SetMargins() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
3966+ <dd><dl>
3967+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.SetMargins">(gluon.contrib.pyrtf.Elements.Section method)</a></dt>
3968+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
3969+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colour.SetName">SetName() (gluon.contrib.pyrtf.PropertySets.Colour method)</a></dt>
3970+ <dd><dl>
3971+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetName">(gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3972+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper.SetName">(gluon.contrib.pyrtf.PropertySets.Paper method)</a></dt>
3973+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetName">(gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3974+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.TextStyle.SetName">(gluon.contrib.pyrtf.Styles.TextStyle method)</a></dt>
3975+ </dl></dd>
3976+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetNext">SetNext() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3977+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetPageBreakBefore">SetPageBreakBefore() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3978+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetPanose">SetPanose() (gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3979+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetParagraphPropertySet">SetParagraphPropertySet() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3980+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPropertySet.SetPattern">SetPattern() (gluon.contrib.pyrtf.PropertySets.ShadingPropertySet method)</a></dt>
3981+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Font.SetPitch">SetPitch() (gluon.contrib.pyrtf.PropertySets.Font method)</a></dt>
3982+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Colour.SetRed">SetRed() (gluon.contrib.pyrtf.PropertySets.Colour method)</a></dt>
3983+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePropertySet.SetRight">SetRight() (gluon.contrib.pyrtf.PropertySets.FramePropertySet method)</a></dt>
3984+ <dd><dl>
3985+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPropertySet.SetRight">(gluon.contrib.pyrtf.PropertySets.MarginsPropertySet method)</a></dt>
3986+ </dl></dd>
3987+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetRightIndent">SetRightIndent() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3988+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPropertySet.SetShading">SetShading() (gluon.contrib.pyrtf.PropertySets.ShadingPropertySet method)</a></dt>
3989+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetShadingPropertySet">SetShadingPropertySet() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
3990+ <dd><dl>
3991+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.TextStyle.SetShadingPropertySet">(gluon.contrib.pyrtf.Styles.TextStyle method)</a></dt>
3992+ </dl></dd>
3993+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetSize">SetSize() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
3994+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.setsockopt">setsockopt() (gluon.wsgiserver.SSLConnection method)</a></dt>
3995+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetSpaceAfter">SetSpaceAfter() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3996+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetSpaceBefore">SetSpaceBefore() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3997+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetSpaceBetweenLines">SetSpaceBetweenLines() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
3998+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPropertySet.SetSpacing">SetSpacing() (gluon.contrib.pyrtf.PropertySets.BorderPropertySet method)</a></dt>
3999+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetSpan">SetSpan() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
4000+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetStartVerticalMerge">SetStartVerticalMerge() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
4001+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetStrikeThrough">SetStrikeThrough() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
4002+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPropertySet.SetStyle">SetStyle() (gluon.contrib.pyrtf.PropertySets.BorderPropertySet method)</a></dt>
4003+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet.SetTabs">SetTabs() (gluon.contrib.pyrtf.PropertySets.ParagraphPropertySet method)</a></dt>
4004+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.TextStyle.SetTextPropertySet">SetTextPropertySet() (gluon.contrib.pyrtf.Styles.TextStyle method)</a></dt>
4005+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.ParagraphStyle.SetTextStyle">SetTextStyle() (gluon.contrib.pyrtf.Styles.ParagraphStyle method)</a></dt>
4006+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.settimeout">settimeout() (gluon.wsgiserver.SSLConnection method)</a></dt>
4007+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Settings">Settings (class in gluon.contrib.pyrtf.Renderer)</a></dt>
4008+ <dd><dl>
4009+ <dt><a href="gluon/gluon.html#gluon.storage.Settings">(class in gluon.storage)</a></dt>
4010+ </dl></dd>
4011+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Document.SetTitle">SetTitle() (gluon.contrib.pyrtf.Elements.Document method)</a></dt>
4012+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.FramePropertySet.SetTop">SetTop() (gluon.contrib.pyrtf.PropertySets.FramePropertySet method)</a></dt>
4013+ <dd><dl>
4014+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.MarginsPropertySet.SetTop">(gluon.contrib.pyrtf.PropertySets.MarginsPropertySet method)</a></dt>
4015+ </dl></dd>
4016+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetUnderline">SetUnderline() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
4017+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Cell.SetVerticalMerge">SetVerticalMerge() (gluon.contrib.pyrtf.Elements.Cell method)</a></dt>
4018+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.BorderPropertySet.SetWidth">SetWidth() (gluon.contrib.pyrtf.PropertySets.BorderPropertySet method)</a></dt>
4019+ <dd><dl>
4020+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.Paper.SetWidth">(gluon.contrib.pyrtf.PropertySets.Paper method)</a></dt>
4021+ <dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TabPropertySet.SetWidth">(gluon.contrib.pyrtf.PropertySets.TabPropertySet method)</a></dt>
4022+ </dl></dd>
4023+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet.SetWordUnderline">SetWordUnderline() (gluon.contrib.pyrtf.PropertySets.TextPropertySet method)</a></dt>
4024+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPropertySet">ShadingPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
4025+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.ShadingPS">ShadingPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
4026+<dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.shrink">shrink() (gluon.wsgiserver.ThreadPool method)</a></dt>
4027+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.shutdown">shutdown() (gluon.wsgiserver.SSLConnection method)</a></dt>
4028+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.simple_response">simple_response() (gluon.wsgiserver.HTTPRequest method)</a></dt>
4029+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SizeCheckWrapper">SizeCheckWrapper (class in gluon.wsgiserver)</a></dt>
4030+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.sock_shutdown">sock_shutdown() (gluon.wsgiserver.SSLConnection method)</a></dt>
4031+<dt><a href="gluon/gluon.html#gluon.html.SPAN">SPAN (class in gluon.html)</a></dt>
4032+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB">SQLDB (class in gluon.sql)</a></dt>
4033+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.memdb.SQLField">SQLField (class in gluon.contrib.memdb)</a></dt>
4034+ <dd><dl>
4035+ <dt><a href="gluon/gluon.html#gluon.sql.SQLField">(class in gluon.sql)</a></dt>
4036+ </dl></dd>
4037+<dt><a href="gluon/gluon.html#gluon.sqlhtml.SQLFORM">SQLFORM (class in gluon.sqlhtml)</a></dt>
4038+<dt><a href="gluon/gluon.html#gluon.sqlhtml.SQLTABLE">SQLTABLE (class in gluon.sqlhtml)</a></dt>
4039+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject">SSL_fileobject (class in gluon.wsgiserver)</a></dt>
4040+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection">SSLConnection (class in gluon.wsgiserver)</a></dt>
4041+<dt><a href="gluon/gluon.html#gluon.main.HttpServer.start">start() (gluon.main.HttpServer method)</a></dt>
4042+ <dd><dl>
4043+ <dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.start">(gluon.widget.web2pyDialog method)</a></dt>
4044+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.start">(gluon.wsgiserver.CherryPyWSGIServer method)</a></dt>
4045+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.start">(gluon.wsgiserver.ThreadPool method)</a></dt>
4046+ <dt><a href="gluon/gluon.html#gluon.widget.start">(in module gluon.widget)</a></dt>
4047+ </dl></dd>
4048+<dt><a href="gluon/gluon.html#gluon.widget.start_browser">start_browser() (in module gluon.widget)</a></dt>
4049+<dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.start_response">start_response() (gluon.wsgiserver.HTTPRequest method)</a></dt>
4050+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.state_string">state_string() (gluon.wsgiserver.SSLConnection method)</a></dt>
4051+<dt><a href="gluon/gluon.html#gluon.main.HttpServer.stop">stop() (gluon.main.HttpServer method)</a></dt>
4052+ <dd><dl>
4053+ <dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.stop">(gluon.widget.web2pyDialog method)</a></dt>
4054+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.stop">(gluon.wsgiserver.CherryPyWSGIServer method)</a></dt>
4055+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool.stop">(gluon.wsgiserver.ThreadPool method)</a></dt>
4056+ </dl></dd>
4057+<dt><a href="gluon/gluon.html#gluon.storage.Storage">Storage (class in gluon.storage)</a></dt>
4058+<dt><a href="gluon/gluon.html#gluon.globals.Response.stream">stream() (gluon.globals.Response method)</a></dt>
4059+<dt><a href="gluon/gluon.html#gluon.streamer.stream_file_or_304_or_206">stream_file_or_304_or_206() (in module gluon.streamer)</a></dt>
4060+<dt><a href="gluon/gluon.html#gluon.streamer.streamer">streamer() (in module gluon.streamer)</a></dt>
4061+<dt><a href="gluon/gluon.html#gluon.sqlhtml.StringWidget">StringWidget (class in gluon.sqlhtml)</a></dt>
4062+<dt><a href="gluon/gluon.html#gluon.html.STYLE">STYLE (class in gluon.html)</a></dt>
4063+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.StyleSheet">StyleSheet (class in gluon.contrib.pyrtf.Elements)</a></dt>
4064+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.sum">sum() (gluon.sql.SQLField method)</a></dt>
4065+</dl></td></tr></table>
4066+
4067+<h2 id="T">T</h2>
4068+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4069+<dl>
4070+
4071+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.TAB">TAB (class in gluon.contrib.pyrtf.Elements)</a></dt>
4072+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Table">Table (class in gluon.contrib.pyrtf.Elements)</a></dt>
4073+<dt><a href="gluon/gluon.html#gluon.html.TABLE">TABLE (class in gluon.html)</a></dt>
4074+<dt><a href="gluon/gluon.html#gluon.sql.SQLDB.Table">Table (gluon.sql.SQLDB attribute)</a></dt>
4075+<dt><a href="gluon/gluon.html#gluon.tools.Crud.tables">tables() (gluon.tools.Crud method)</a></dt>
4076+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TabPropertySet">TabPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
4077+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TabPS">TabPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt>
4078+<dt><a href="gluon/gluon.html#gluon.html.TAG">TAG (in module gluon.html)</a></dt>
4079+<dt><a href="gluon/gluon.html#gluon.fileutils.tar">tar() (in module gluon.fileutils)</a></dt>
4080+<dt><a href="gluon/gluon.html#gluon.fileutils.tar_compiled">tar_compiled() (in module gluon.fileutils)</a></dt>
4081+<dt><a href="gluon/gluon.html#gluon.html.TBODY">TBODY (class in gluon.html)</a></dt>
4082+<dt><a href="gluon/gluon.html#gluon.html.TD">TD (class in gluon.html)</a></dt>
4083+<dt><a href="gluon/gluon.html#gluon.compileapp.test">test() (in module gluon.compileapp)</a></dt>
4084+ <dd><dl>
4085+ <dt><a href="gluon/gluon.html#gluon.shell.test">(in module gluon.shell)</a></dt>
4086+ </dl></dd>
4087+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Text">Text (class in gluon.contrib.pyrtf.Elements)</a></dt>
4088+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.TEXT">TEXT() (in module gluon.contrib.pyrtf.Elements)</a></dt>
4089+<dt><a href="gluon/gluon.html#gluon.html.TEXTAREA">TEXTAREA (class in gluon.html)</a></dt>
4090+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPropertySet">TextPropertySet (class in gluon.contrib.pyrtf.PropertySets)</a></dt>
4091+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.PropertySets.TextPS">TextPS (in module gluon.contrib.pyrtf.PropertySets)</a></dt></dl></td><td width="33%" valign="top"><dl>
4092+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Styles.TextStyle">TextStyle (class in gluon.contrib.pyrtf.Styles)</a></dt>
4093+<dt><a href="gluon/gluon.html#gluon.sqlhtml.TextWidget">TextWidget (class in gluon.sqlhtml)</a></dt>
4094+<dt><a href="gluon/gluon.html#gluon.html.TFOOT">TFOOT (class in gluon.html)</a></dt>
4095+<dt><a href="gluon/gluon.html#gluon.html.TH">TH (class in gluon.html)</a></dt>
4096+<dt><a href="gluon/gluon.html#gluon.html.THEAD">THEAD (class in gluon.html)</a></dt>
4097+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe">ThingsNobodyCaresAboutButMe</a></dt>
4098+<dt><a href="gluon/gluon.html#gluon.wsgiserver.ThreadPool">ThreadPool (class in gluon.wsgiserver)</a></dt>
4099+<dt><a href="gluon/gluon.html#gluon.wsgiserver.CherryPyWSGIServer.tick">tick() (gluon.wsgiserver.CherryPyWSGIServer method)</a></dt>
4100+<dt><a href="gluon/gluon.html#gluon.sqlhtml.TimeWidget">TimeWidget (class in gluon.sqlhtml)</a></dt>
4101+<dt><a href="gluon/gluon.html#gluon.html.TITLE">TITLE (class in gluon.html)</a></dt>
4102+<dt><a href="gluon/gluon.html#gluon.http.HTTP.to">to() (gluon.http.HTTP method)</a></dt>
4103+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Image.ToRawCode">ToRawCode() (gluon.contrib.pyrtf.Elements.Image method)</a></dt>
4104+<dt><a href="gluon/gluon.html#gluon.html.TR">TR (class in gluon.html)</a></dt>
4105+<dt><a href="gluon/gluon.html#gluon.languages.translator.translate">translate() (gluon.languages.translator method)</a></dt>
4106+<dt><a href="gluon/gluon.html#gluon.languages.translator">translator (class in gluon.languages)</a></dt>
4107+<dt><a href="gluon/gluon.html#gluon.widget.try_start_browser">try_start_browser() (in module gluon.widget)</a></dt>
4108+<dt><a href="gluon/gluon.html#gluon.html.TT">TT (class in gluon.html)</a></dt>
4109+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.Section.TwipsToRightMargin">TwipsToRightMargin() (gluon.contrib.pyrtf.Elements.Section method)</a></dt>
4110+</dl></td></tr></table>
4111+
4112+<h2 id="U">U</h2>
4113+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4114+<dl>
4115+
4116+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.U">U() (in module gluon.contrib.pyrtf.Elements)</a></dt>
4117+<dt><a href="gluon/gluon.html#gluon.html.UL">UL (class in gluon.html)</a></dt>
4118+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.UndeclaredNamespace">UndeclaredNamespace</a></dt>
4119+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Elements.UnhandledParamError">UnhandledParamError</a></dt>
4120+<dt><a href="gluon/gluon.html#gluon.tools.universal_caller">universal_caller() (in module gluon.tools)</a></dt>
4121+<dt><a href="gluon/gluon.html#gluon.fileutils.untar">untar() (in module gluon.fileutils)</a></dt>
4122+<dt><a href="gluon/gluon.html#gluon.html.DIV.update">update() (gluon.html.DIV method)</a></dt>
4123+ <dd><dl>
4124+ <dt><a href="gluon/gluon.html#gluon.tools.Crud.update">(gluon.tools.Crud method)</a></dt>
4125+ <dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.update">(gluon.widget.web2pyDialog method)</a></dt>
4126+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
4127+<dt><a href="gluon/gluon.html#gluon.languages.update_all_languages">update_all_languages() (in module gluon.languages)</a></dt>
4128+<dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog.update_canvas">update_canvas() (gluon.widget.web2pyDialog method)</a></dt>
4129+<dt><a href="gluon/gluon.html#gluon.sqlhtml.UploadWidget">UploadWidget (class in gluon.sqlhtml)</a></dt>
4130+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.upper">upper() (gluon.sql.SQLField method)</a></dt>
4131+<dt><a href="gluon/gluon.html#gluon.html.URL">URL() (in module gluon.html)</a></dt>
4132+<dt><a href="gluon/gluon.html#gluon.tools.Auth.user_group">user_group() (gluon.tools.Auth method)</a></dt>
4133+</dl></td></tr></table>
4134+
4135+<h2 id="V">V</h2>
4136+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4137+<dl>
4138+
4139+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.validate">validate() (gluon.sql.SQLField method)</a></dt>
4140+<dt><a href="gluon/gluon.html#gluon.tools.validators">validators() (in module gluon.tools)</a></dt>
4141+<dt><a href="gluon/gluon.html#gluon.tools.Auth.verify_email">verify_email() (gluon.tools.Auth method)</a></dt>
4142+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewKind">ViewKind (class in gluon.contrib.pyrtf.Constants)</a></dt></dl></td><td width="33%" valign="top"><dl>
4143+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewScale">ViewScale (class in gluon.contrib.pyrtf.Constants)</a></dt>
4144+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Constants.ViewZoomKind">ViewZoomKind (class in gluon.contrib.pyrtf.Constants)</a></dt>
4145+</dl></td></tr></table>
4146+
4147+<h2 id="W">W</h2>
4148+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4149+<dl>
4150+
4151+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.want_read">want_read() (gluon.wsgiserver.SSLConnection method)</a></dt>
4152+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.want_write">want_write() (gluon.wsgiserver.SSLConnection method)</a></dt>
4153+<dt><a href="gluon/gluon.html#gluon.widget.web2pyDialog">web2pyDialog (class in gluon.widget)</a></dt>
4154+<dt><a href="gluon/gluon.html#gluon.sqlhtml.BooleanWidget.widget">widget() (gluon.sqlhtml.BooleanWidget static method)</a></dt>
4155+ <dd><dl>
4156+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.MultipleOptionsWidget.widget">(gluon.sqlhtml.MultipleOptionsWidget static method)</a></dt>
4157+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.OptionsWidget.widget">(gluon.sqlhtml.OptionsWidget static method)</a></dt>
4158+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.PasswordWidget.widget">(gluon.sqlhtml.PasswordWidget static method)</a></dt>
4159+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.StringWidget.widget">(gluon.sqlhtml.StringWidget static method)</a></dt>
4160+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.TextWidget.widget">(gluon.sqlhtml.TextWidget static method)</a></dt>
4161+ <dt><a href="gluon/gluon.html#gluon.sqlhtml.UploadWidget.widget">(gluon.sqlhtml.UploadWidget static method)</a></dt>
4162+ </dl></dd>
4163+<dt><a href="gluon/gluon.contrib.markdown.html#gluon.contrib.markdown.WIKI">WIKI() (in module gluon.contrib.markdown)</a></dt>
4164+<dt><a href="gluon/gluon.html#gluon.wsgiserver.WorkerThread">WorkerThread (class in gluon.wsgiserver)</a></dt>
4165+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.Write">Write() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4166+<dt><a href="gluon/gluon.html#gluon.globals.Response.write">write() (gluon.globals.Response method)</a></dt>
4167+ <dd><dl>
4168+ <dt><a href="gluon/gluon.html#gluon.widget.IO.write">(gluon.widget.IO method)</a></dt>
4169+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.HTTPRequest.write">(gluon.wsgiserver.HTTPRequest method)</a></dt>
4170+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSLConnection.write">(gluon.wsgiserver.SSLConnection method)</a></dt>
4171+ <dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.write">(gluon.wsgiserver.SSL_fileobject method)</a></dt>
4172+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
4173+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteInlineElement">WriteInlineElement() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4174+<dt><a href="gluon/gluon.html#gluon.wsgiserver.SSL_fileobject.writelines">writelines() (gluon.wsgiserver.SSL_fileobject method)</a></dt>
4175+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteParagraphElement">WriteParagraphElement() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4176+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteRawCode">WriteRawCode() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4177+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteTableElement">WriteTableElement() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4178+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteText">WriteText() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4179+<dt><a href="gluon/gluon.contrib.pyrtf.html#gluon.contrib.pyrtf.Renderer.Renderer.WriteTextElement">WriteTextElement() (gluon.contrib.pyrtf.Renderer.Renderer method)</a></dt>
4180+<dt><a href="gluon/gluon.html#gluon.main.wsgibase">wsgibase() (in module gluon.main)</a></dt>
4181+<dt><a href="gluon/gluon.html#gluon.wsgiserver.WSGIPathInfoDispatcher">WSGIPathInfoDispatcher (class in gluon.wsgiserver)</a></dt>
4182+<dt><a href="gluon/gluon.contrib.gateways.html#gluon.contrib.gateways.fcgi.WSGIServer">WSGIServer (class in gluon.contrib.gateways.fcgi)</a></dt>
4183+</dl></td></tr></table>
4184+
4185+<h2 id="X">X</h2>
4186+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4187+<dl>
4188+
4189+<dt><a href="gluon/gluon.html#gluon.html.XML">XML (class in gluon.html)</a></dt>
4190+<dt><a href="gluon/gluon.html#gluon.html.CODE.xml">xml() (gluon.html.CODE method)</a></dt>
4191+ <dd><dl>
4192+ <dt><a href="gluon/gluon.html#gluon.html.DIV.xml">(gluon.html.DIV method)</a></dt>
4193+ <dt><a href="gluon/gluon.html#gluon.html.FORM.xml">(gluon.html.FORM method)</a></dt>
4194+ <dt><a href="gluon/gluon.html#gluon.html.HTML.xml">(gluon.html.HTML method)</a></dt>
4195+ <dt><a href="gluon/gluon.html#gluon.html.INPUT.xml">(gluon.html.INPUT method)</a></dt>
4196+ <dt><a href="gluon/gluon.html#gluon.html.MENU.xml">(gluon.html.MENU method)</a></dt>
4197+ <dt><a href="gluon/gluon.html#gluon.html.P.xml">(gluon.html.P method)</a></dt>
4198+ <dt><a href="gluon/gluon.html#gluon.html.SCRIPT.xml">(gluon.html.SCRIPT method)</a></dt>
4199+ <dt><a href="gluon/gluon.html#gluon.html.XML.xml">(gluon.html.XML method)</a></dt>
4200+ <dt><a href="gluon/gluon.html#gluon.tools.Recaptcha.xml">(gluon.tools.Recaptcha method)</a></dt>
4201+ <dt><a href="gluon/gluon.html#gluon.tools.Service.xml">(gluon.tools.Service method)</a></dt>
4202+ </dl></dd></dl></td><td width="33%" valign="top"><dl>
4203+<dt><a href="gluon/gluon.html#gluon.tools.Service.xml_serializer">xml_serializer() (gluon.tools.Service method)</a></dt>
4204+<dt><a href="gluon/gluon.html#gluon.html.xmlescape">xmlescape() (in module gluon.html)</a></dt>
4205+<dt><a href="gluon/gluon.html#gluon.globals.Response.xmlrpc">xmlrpc() (gluon.globals.Response method)</a></dt>
4206+ <dd><dl>
4207+ <dt><a href="gluon/gluon.html#gluon.tools.Service.xmlrpc">(gluon.tools.Service method)</a></dt>
4208+ </dl></dd>
4209+</dl></td></tr></table>
4210+
4211+<h2 id="Y">Y</h2>
4212+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4213+<dl>
4214+
4215+<dt><a href="gluon/gluon.html#gluon.sql.SQLField.year">year() (gluon.sql.SQLField method)</a></dt></dl></td><td width="33%" valign="top"><dl>
4216+</dl></td></tr></table>
4217+
4218+<h2 id="Z">Z</h2>
4219+<table width="100%" class="indextable"><tr><td width="33%" valign="top">
4220+<dl>
4221+
4222+<dt><a href="gluon/gluon.contrib.html#gluon.contrib.feedparser.zopeCompatibilityHack">zopeCompatibilityHack() (in module gluon.contrib.feedparser)</a></dt></dl></td><td width="33%" valign="top"><dl>
4223+</dl></td></tr></table>
4224+
4225+
4226+
4227+ </div>
4228+ </div>
4229+ </div>
4230+ <div class="sphinxsidebar">
4231+ <div class="sphinxsidebarwrapper">
4232+ <p class="logo"><a href="index.html">
4233+ <img class="logo" src="_static/logo_colored_small.png" alt="Logo"/>
4234+ </a></p>
4235+
4236+
4237+
4238+ <div id="searchbox" style="display: none">
4239+ <h3>Quick search</h3>
4240+ <form class="search" action="search.html" method="get">
4241+ <input type="text" name="q" size="18" />
4242+ <input type="submit" value="Go" />
4243+ <input type="hidden" name="check_keywords" value="yes" />
4244+ <input type="hidden" name="area" value="default" />
4245+ </form>
4246+ <p class="searchtip" style="font-size: 90%">
4247+ Enter search terms or a module, class or function name.
4248+ </p>
4249+ </div>
4250+ <script type="text/javascript">$('#searchbox').show(0);</script>
4251+ </div>
4252+ </div>
4253+ <div class="clearer"></div>
4254+ </div>
4255+ <div class="related">
4256+ <h3>Navigation</h3>
4257+ <ul>
4258+ <li class="right" style="margin-right: 10px">
4259+ <a href="" title="General Index"
4260+ >index</a></li>
4261+ <li class="right" >
4262+ <a href="modindex.html" title="Global Module Index"
4263+ >modules</a> |</li>
4264+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4265+ </ul>
4266+ </div>
4267+ <div class="footer">
4268+ &copy; Copyright 2009, The web2py developers.
4269+ Last updated on May 11, 2009.
4270+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
4271+ </div>
4272+ </body>
4273+</html>
4274\ No newline at end of file
4275
4276=== added file 'applications/examples/static/sphinx/glossary.html'
4277--- applications/examples/static/sphinx/glossary.html 1970-01-01 00:00:00 +0000
4278+++ applications/examples/static/sphinx/glossary.html 2009-05-11 19:38:38 +0000
4279@@ -0,0 +1,124 @@
4280+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4281+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4282+
4283+<html xmlns="http://www.w3.org/1999/xhtml">
4284+ <head>
4285+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4286+
4287+ <title>Glossary &mdash; Web2Py v1.62 rc2 documentation</title>
4288+ <link rel="stylesheet" href="_static/default.css" type="text/css" />
4289+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
4290+ <script type="text/javascript">
4291+ var DOCUMENTATION_OPTIONS = {
4292+ URL_ROOT: '',
4293+ VERSION: '1.62 rc2',
4294+ COLLAPSE_MODINDEX: false,
4295+ FILE_SUFFIX: '.html',
4296+ HAS_SOURCE: true
4297+ };
4298+ </script>
4299+ <script type="text/javascript" src="_static/jquery.js"></script>
4300+ <script type="text/javascript" src="_static/doctools.js"></script>
4301+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="index.html" />
4302+ <link rel="next" title="User Wiki" href="user_wiki.html" />
4303+ <link rel="prev" title="Todo & Feature Proposals" href="web2py_todo.html" />
4304+ </head>
4305+ <body>
4306+ <div class="related">
4307+ <h3>Navigation</h3>
4308+ <ul>
4309+ <li class="right" style="margin-right: 10px">
4310+ <a href="genindex.html" title="General Index"
4311+ accesskey="I">index</a></li>
4312+ <li class="right" >
4313+ <a href="modindex.html" title="Global Module Index"
4314+ accesskey="M">modules</a> |</li>
4315+ <li class="right" >
4316+ <a href="user_wiki.html" title="User Wiki"
4317+ accesskey="N">next</a> |</li>
4318+ <li class="right" >
4319+ <a href="web2py_todo.html" title="Todo & Feature Proposals"
4320+ accesskey="P">previous</a> |</li>
4321+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4322+ </ul>
4323+ </div>
4324+
4325+ <div class="document">
4326+ <div class="documentwrapper">
4327+ <div class="bodywrapper">
4328+ <div class="body">
4329+
4330+ <div class="section" id="glossary">
4331+<h1>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h1>
4332+<dl class="glossary docutils">
4333+<dt id="term-cli">CLI</dt>
4334+<dd>Command Line Interface</dd>
4335+<dt id="term-dvcs">DVCS</dt>
4336+<dd>Distributed Version Control System</dd>
4337+<dt id="term-rest">ReSt</dt>
4338+<dd>ReStructured Text ASCII markup format</dd>
4339+</dl>
4340+</div>
4341+
4342+
4343+ </div>
4344+ </div>
4345+ </div>
4346+ <div class="sphinxsidebar">
4347+ <div class="sphinxsidebarwrapper">
4348+ <p class="logo"><a href="index.html">
4349+ <img class="logo" src="_static/logo_colored_small.png" alt="Logo"/>
4350+ </a></p>
4351+ <h4>Previous topic</h4>
4352+ <p class="topless"><a href="web2py_todo.html"
4353+ title="previous chapter">Todo &amp; Feature Proposals</a></p>
4354+ <h4>Next topic</h4>
4355+ <p class="topless"><a href="user_wiki.html"
4356+ title="next chapter">User Wiki</a></p>
4357+ <h3>This Page</h3>
4358+ <ul class="this-page-menu">
4359+ <li><a href="_sources/glossary.txt"
4360+ rel="nofollow">Show Source</a></li>
4361+ </ul>
4362+ <div id="searchbox" style="display: none">
4363+ <h3>Quick search</h3>
4364+ <form class="search" action="search.html" method="get">
4365+ <input type="text" name="q" size="18" />
4366+ <input type="submit" value="Go" />
4367+ <input type="hidden" name="check_keywords" value="yes" />
4368+ <input type="hidden" name="area" value="default" />
4369+ </form>
4370+ <p class="searchtip" style="font-size: 90%">
4371+ Enter search terms or a module, class or function name.
4372+ </p>
4373+ </div>
4374+ <script type="text/javascript">$('#searchbox').show(0);</script>
4375+ </div>
4376+ </div>
4377+ <div class="clearer"></div>
4378+ </div>
4379+ <div class="related">
4380+ <h3>Navigation</h3>
4381+ <ul>
4382+ <li class="right" style="margin-right: 10px">
4383+ <a href="genindex.html" title="General Index"
4384+ >index</a></li>
4385+ <li class="right" >
4386+ <a href="modindex.html" title="Global Module Index"
4387+ >modules</a> |</li>
4388+ <li class="right" >
4389+ <a href="user_wiki.html" title="User Wiki"
4390+ >next</a> |</li>
4391+ <li class="right" >
4392+ <a href="web2py_todo.html" title="Todo & Feature Proposals"
4393+ >previous</a> |</li>
4394+ <li><a href="index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4395+ </ul>
4396+ </div>
4397+ <div class="footer">
4398+ &copy; Copyright 2009, The web2py developers.
4399+ Last updated on May 11, 2009.
4400+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
4401+ </div>
4402+ </body>
4403+</html>
4404\ No newline at end of file
4405
4406=== added directory 'applications/examples/static/sphinx/gluon'
4407=== added file 'applications/examples/static/sphinx/gluon/gluon.compat.html'
4408--- applications/examples/static/sphinx/gluon/gluon.compat.html 1970-01-01 00:00:00 +0000
4409+++ applications/examples/static/sphinx/gluon/gluon.compat.html 2009-05-11 19:38:38 +0000
4410@@ -0,0 +1,136 @@
4411+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4412+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4413+
4414+<html xmlns="http://www.w3.org/1999/xhtml">
4415+ <head>
4416+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4417+
4418+ <title>Compat Documentation &mdash; Web2Py v1.62 rc2 documentation</title>
4419+ <link rel="stylesheet" href="../_static/default.css" type="text/css" />
4420+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
4421+ <script type="text/javascript">
4422+ var DOCUMENTATION_OPTIONS = {
4423+ URL_ROOT: '../',
4424+ VERSION: '1.62 rc2',
4425+ COLLAPSE_MODINDEX: false,
4426+ FILE_SUFFIX: '.html',
4427+ HAS_SOURCE: true
4428+ };
4429+ </script>
4430+ <script type="text/javascript" src="../_static/jquery.js"></script>
4431+ <script type="text/javascript" src="../_static/doctools.js"></script>
4432+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="../index.html" />
4433+ <link rel="up" title="Gluon Package" href="gluon.html" />
4434+ <link rel="next" title="Contrib Documentation" href="gluon.contrib.html" />
4435+ <link rel="prev" title="Gluon Package" href="gluon.html" />
4436+ </head>
4437+ <body>
4438+ <div class="related">
4439+ <h3>Navigation</h3>
4440+ <ul>
4441+ <li class="right" style="margin-right: 10px">
4442+ <a href="../genindex.html" title="General Index"
4443+ accesskey="I">index</a></li>
4444+ <li class="right" >
4445+ <a href="../modindex.html" title="Global Module Index"
4446+ accesskey="M">modules</a> |</li>
4447+ <li class="right" >
4448+ <a href="gluon.contrib.html" title="Contrib Documentation"
4449+ accesskey="N">next</a> |</li>
4450+ <li class="right" >
4451+ <a href="gluon.html" title="Gluon Package"
4452+ accesskey="P">previous</a> |</li>
4453+ <li><a href="../index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4454+ <li><a href="../modules.html" >Web2Py Modules</a> &raquo;</li>
4455+ <li><a href="gluon.html" accesskey="U">Gluon Package</a> &raquo;</li>
4456+ </ul>
4457+ </div>
4458+
4459+ <div class="document">
4460+ <div class="documentwrapper">
4461+ <div class="bodywrapper">
4462+ <div class="body">
4463+
4464+ <div class="section" id="compat-documentation">
4465+<h1>Compat Documentation<a class="headerlink" href="#compat-documentation" title="Permalink to this headline">¶</a></h1>
4466+<p>This page contains the Compat Package documentation.</p>
4467+<div class="section" id="the-uuid-module">
4468+<h2>The <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/uuid.html#module-uuid"><tt class="xref docutils literal"><span class="pre">uuid</span></tt></a> Module<a class="headerlink" href="#the-uuid-module" title="Permalink to this headline">¶</a></h2>
4469+<div class="system-message">
4470+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.compat.rst</tt>, line 9)</p>
4471+autodoc can&#8217;t import/find module &#8216;gluon.compat.uuid&#8217;, it reported error: &#8220;No module named compat.uuid&#8221;, please check your spelling and sys.path</div>
4472+</div>
4473+</div>
4474+
4475+
4476+ </div>
4477+ </div>
4478+ </div>
4479+ <div class="sphinxsidebar">
4480+ <div class="sphinxsidebarwrapper">
4481+ <p class="logo"><a href="../index.html">
4482+ <img class="logo" src="../_static/logo_colored_small.png" alt="Logo"/>
4483+ </a></p>
4484+ <h3><a href="../index.html">Table Of Contents</a></h3>
4485+ <ul>
4486+<li><a class="reference external" href="">Compat Documentation</a><ul>
4487+<li><a class="reference external" href="#the-uuid-module">The <tt class="docutils literal"><span class="pre">uuid</span></tt> Module</a></li>
4488+</ul>
4489+</li>
4490+</ul>
4491+
4492+ <h4>Previous topic</h4>
4493+ <p class="topless"><a href="gluon.html"
4494+ title="previous chapter">Gluon Package</a></p>
4495+ <h4>Next topic</h4>
4496+ <p class="topless"><a href="gluon.contrib.html"
4497+ title="next chapter">Contrib Documentation</a></p>
4498+ <h3>This Page</h3>
4499+ <ul class="this-page-menu">
4500+ <li><a href="../_sources/gluon/gluon.compat.txt"
4501+ rel="nofollow">Show Source</a></li>
4502+ </ul>
4503+ <div id="searchbox" style="display: none">
4504+ <h3>Quick search</h3>
4505+ <form class="search" action="../search.html" method="get">
4506+ <input type="text" name="q" size="18" />
4507+ <input type="submit" value="Go" />
4508+ <input type="hidden" name="check_keywords" value="yes" />
4509+ <input type="hidden" name="area" value="default" />
4510+ </form>
4511+ <p class="searchtip" style="font-size: 90%">
4512+ Enter search terms or a module, class or function name.
4513+ </p>
4514+ </div>
4515+ <script type="text/javascript">$('#searchbox').show(0);</script>
4516+ </div>
4517+ </div>
4518+ <div class="clearer"></div>
4519+ </div>
4520+ <div class="related">
4521+ <h3>Navigation</h3>
4522+ <ul>
4523+ <li class="right" style="margin-right: 10px">
4524+ <a href="../genindex.html" title="General Index"
4525+ >index</a></li>
4526+ <li class="right" >
4527+ <a href="../modindex.html" title="Global Module Index"
4528+ >modules</a> |</li>
4529+ <li class="right" >
4530+ <a href="gluon.contrib.html" title="Contrib Documentation"
4531+ >next</a> |</li>
4532+ <li class="right" >
4533+ <a href="gluon.html" title="Gluon Package"
4534+ >previous</a> |</li>
4535+ <li><a href="../index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4536+ <li><a href="../modules.html" >Web2Py Modules</a> &raquo;</li>
4537+ <li><a href="gluon.html" >Gluon Package</a> &raquo;</li>
4538+ </ul>
4539+ </div>
4540+ <div class="footer">
4541+ &copy; Copyright 2009, The web2py developers.
4542+ Last updated on May 11, 2009.
4543+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
4544+ </div>
4545+ </body>
4546+</html>
4547\ No newline at end of file
4548
4549=== added file 'applications/examples/static/sphinx/gluon/gluon.contrib.gateways.html'
4550--- applications/examples/static/sphinx/gluon/gluon.contrib.gateways.html 1970-01-01 00:00:00 +0000
4551+++ applications/examples/static/sphinx/gluon/gluon.contrib.gateways.html 2009-05-11 19:38:38 +0000
4552@@ -0,0 +1,163 @@
4553+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4554+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4555+
4556+<html xmlns="http://www.w3.org/1999/xhtml">
4557+ <head>
4558+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4559+
4560+ <title>Gateways Documentation &mdash; Web2Py v1.62 rc2 documentation</title>
4561+ <link rel="stylesheet" href="../_static/default.css" type="text/css" />
4562+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
4563+ <script type="text/javascript">
4564+ var DOCUMENTATION_OPTIONS = {
4565+ URL_ROOT: '../',
4566+ VERSION: '1.62 rc2',
4567+ COLLAPSE_MODINDEX: false,
4568+ FILE_SUFFIX: '.html',
4569+ HAS_SOURCE: true
4570+ };
4571+ </script>
4572+ <script type="text/javascript" src="../_static/jquery.js"></script>
4573+ <script type="text/javascript" src="../_static/doctools.js"></script>
4574+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="../index.html" />
4575+ <link rel="up" title="Contrib Documentation" href="gluon.contrib.html" />
4576+ <link rel="next" title="Markdown Documentation" href="gluon.contrib.markdown.html" />
4577+ <link rel="prev" title="Pyrtf Documentation" href="gluon.contrib.pyrtf.html" />
4578+ </head>
4579+ <body>
4580+ <div class="related">
4581+ <h3>Navigation</h3>
4582+ <ul>
4583+ <li class="right" style="margin-right: 10px">
4584+ <a href="../genindex.html" title="General Index"
4585+ accesskey="I">index</a></li>
4586+ <li class="right" >
4587+ <a href="../modindex.html" title="Global Module Index"
4588+ accesskey="M">modules</a> |</li>
4589+ <li class="right" >
4590+ <a href="gluon.contrib.markdown.html" title="Markdown Documentation"
4591+ accesskey="N">next</a> |</li>
4592+ <li class="right" >
4593+ <a href="gluon.contrib.pyrtf.html" title="Pyrtf Documentation"
4594+ accesskey="P">previous</a> |</li>
4595+ <li><a href="../index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4596+ <li><a href="../modules.html" >Web2Py Modules</a> &raquo;</li>
4597+ <li><a href="gluon.html" >Gluon Package</a> &raquo;</li>
4598+ <li><a href="gluon.contrib.html" accesskey="U">Contrib Documentation</a> &raquo;</li>
4599+ </ul>
4600+ </div>
4601+
4602+ <div class="document">
4603+ <div class="documentwrapper">
4604+ <div class="bodywrapper">
4605+ <div class="body">
4606+
4607+ <div class="section" id="gateways-documentation">
4608+<h1>Gateways Documentation<a class="headerlink" href="#gateways-documentation" title="Permalink to this headline">¶</a></h1>
4609+<p>This page contains the Gateways Package documentation.</p>
4610+<div class="section" id="module-gluon.contrib.gateways.fcgi">
4611+<h2>The <tt class="xref docutils literal"><span class="pre">fcgi</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.gateways.fcgi" title="Permalink to this headline">¶</a></h2>
4612+<p>fcgi - a FastCGI/WSGI gateway.</p>
4613+<p>For more information about FastCGI, see &lt;<a class="reference external" href="http://www.fastcgi.com/">http://www.fastcgi.com/</a>&gt;.</p>
4614+<p>For more information about the Web Server Gateway Interface, see
4615+&lt;<a class="reference external" href="http://www.python.org/peps/pep-0333.html">http://www.python.org/peps/pep-0333.html</a>&gt;.</p>
4616+<p>Example usage:</p>
4617+<blockquote>
4618+#!/usr/bin/env python
4619+from myapplication import app # Assume app is your WSGI application object
4620+from fcgi import WSGIServer
4621+WSGIServer(app).run()</blockquote>
4622+<p>See the documentation for WSGIServer/Server for more information.</p>
4623+<p>On most platforms, fcgi will fallback to regular CGI behavior if run in a
4624+non-FastCGI context. If you want to force CGI behavior, set the environment
4625+variable FCGI_FORCE_CGI to &#8220;Y&#8221; or &#8220;y&#8221;.</p>
4626+<dl class="class">
4627+<dt id="gluon.contrib.gateways.fcgi.WSGIServer">
4628+<em class="property">
4629+class </em><tt class="descclassname">gluon.contrib.gateways.fcgi.</tt><tt class="descname">WSGIServer</tt><big>(</big><em>application</em>, <em>environ=None</em>, <em>umask=None</em>, <em>multithreaded=True</em>, <em>**kw</em><big>)</big><a class="headerlink" href="#gluon.contrib.gateways.fcgi.WSGIServer" title="Permalink to this definition">¶</a></dt>
4630+<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">gluon.contrib.gateways.fcgi.Server</span></tt></p>
4631+<p>FastCGI server that supports the Web Server Gateway Interface. See
4632+&lt;<a class="reference external" href="http://www.python.org/peps/pep-0333.html">http://www.python.org/peps/pep-0333.html</a>&gt;.</p>
4633+<dl class="method">
4634+<dt id="gluon.contrib.gateways.fcgi.WSGIServer.handler">
4635+<tt class="descname">handler</tt><big>(</big><em>req</em><big>)</big><a class="headerlink" href="#gluon.contrib.gateways.fcgi.WSGIServer.handler" title="Permalink to this definition">¶</a></dt>
4636+<dd>Special handler for WSGI.</dd></dl>
4637+
4638+</dd></dl>
4639+
4640+</div>
4641+</div>
4642+
4643+
4644+ </div>
4645+ </div>
4646+ </div>
4647+ <div class="sphinxsidebar">
4648+ <div class="sphinxsidebarwrapper">
4649+ <p class="logo"><a href="../index.html">
4650+ <img class="logo" src="../_static/logo_colored_small.png" alt="Logo"/>
4651+ </a></p>
4652+ <h3><a href="../index.html">Table Of Contents</a></h3>
4653+ <ul>
4654+<li><a class="reference external" href="">Gateways Documentation</a><ul>
4655+<li><a class="reference external" href="#module-gluon.contrib.gateways.fcgi">The <tt class="docutils literal"><span class="pre">fcgi</span></tt> Module</a></li>
4656+</ul>
4657+</li>
4658+</ul>
4659+
4660+ <h4>Previous topic</h4>
4661+ <p class="topless"><a href="gluon.contrib.pyrtf.html"
4662+ title="previous chapter">Pyrtf Documentation</a></p>
4663+ <h4>Next topic</h4>
4664+ <p class="topless"><a href="gluon.contrib.markdown.html"
4665+ title="next chapter">Markdown Documentation</a></p>
4666+ <h3>This Page</h3>
4667+ <ul class="this-page-menu">
4668+ <li><a href="../_sources/gluon/gluon.contrib.gateways.txt"
4669+ rel="nofollow">Show Source</a></li>
4670+ </ul>
4671+ <div id="searchbox" style="display: none">
4672+ <h3>Quick search</h3>
4673+ <form class="search" action="../search.html" method="get">
4674+ <input type="text" name="q" size="18" />
4675+ <input type="submit" value="Go" />
4676+ <input type="hidden" name="check_keywords" value="yes" />
4677+ <input type="hidden" name="area" value="default" />
4678+ </form>
4679+ <p class="searchtip" style="font-size: 90%">
4680+ Enter search terms or a module, class or function name.
4681+ </p>
4682+ </div>
4683+ <script type="text/javascript">$('#searchbox').show(0);</script>
4684+ </div>
4685+ </div>
4686+ <div class="clearer"></div>
4687+ </div>
4688+ <div class="related">
4689+ <h3>Navigation</h3>
4690+ <ul>
4691+ <li class="right" style="margin-right: 10px">
4692+ <a href="../genindex.html" title="General Index"
4693+ >index</a></li>
4694+ <li class="right" >
4695+ <a href="../modindex.html" title="Global Module Index"
4696+ >modules</a> |</li>
4697+ <li class="right" >
4698+ <a href="gluon.contrib.markdown.html" title="Markdown Documentation"
4699+ >next</a> |</li>
4700+ <li class="right" >
4701+ <a href="gluon.contrib.pyrtf.html" title="Pyrtf Documentation"
4702+ >previous</a> |</li>
4703+ <li><a href="../index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4704+ <li><a href="../modules.html" >Web2Py Modules</a> &raquo;</li>
4705+ <li><a href="gluon.html" >Gluon Package</a> &raquo;</li>
4706+ <li><a href="gluon.contrib.html" >Contrib Documentation</a> &raquo;</li>
4707+ </ul>
4708+ </div>
4709+ <div class="footer">
4710+ &copy; Copyright 2009, The web2py developers.
4711+ Last updated on May 11, 2009.
4712+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.
4713+ </div>
4714+ </body>
4715+</html>
4716\ No newline at end of file
4717
4718=== added file 'applications/examples/static/sphinx/gluon/gluon.contrib.html'
4719--- applications/examples/static/sphinx/gluon/gluon.contrib.html 1970-01-01 00:00:00 +0000
4720+++ applications/examples/static/sphinx/gluon/gluon.contrib.html 2009-05-11 19:38:38 +0000
4721@@ -0,0 +1,341 @@
4722+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4723+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4724+
4725+<html xmlns="http://www.w3.org/1999/xhtml">
4726+ <head>
4727+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4728+
4729+ <title>Contrib Documentation &mdash; Web2Py v1.62 rc2 documentation</title>
4730+ <link rel="stylesheet" href="../_static/default.css" type="text/css" />
4731+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
4732+ <script type="text/javascript">
4733+ var DOCUMENTATION_OPTIONS = {
4734+ URL_ROOT: '../',
4735+ VERSION: '1.62 rc2',
4736+ COLLAPSE_MODINDEX: false,
4737+ FILE_SUFFIX: '.html',
4738+ HAS_SOURCE: true
4739+ };
4740+ </script>
4741+ <script type="text/javascript" src="../_static/jquery.js"></script>
4742+ <script type="text/javascript" src="../_static/doctools.js"></script>
4743+ <link rel="top" title="Web2Py v1.62 rc2 documentation" href="../index.html" />
4744+ <link rel="up" title="Gluon Package" href="gluon.html" />
4745+ <link rel="next" title="Pyrtf Documentation" href="gluon.contrib.pyrtf.html" />
4746+ <link rel="prev" title="Compat Documentation" href="gluon.compat.html" />
4747+ </head>
4748+ <body>
4749+ <div class="related">
4750+ <h3>Navigation</h3>
4751+ <ul>
4752+ <li class="right" style="margin-right: 10px">
4753+ <a href="../genindex.html" title="General Index"
4754+ accesskey="I">index</a></li>
4755+ <li class="right" >
4756+ <a href="../modindex.html" title="Global Module Index"
4757+ accesskey="M">modules</a> |</li>
4758+ <li class="right" >
4759+ <a href="gluon.contrib.pyrtf.html" title="Pyrtf Documentation"
4760+ accesskey="N">next</a> |</li>
4761+ <li class="right" >
4762+ <a href="gluon.compat.html" title="Compat Documentation"
4763+ accesskey="P">previous</a> |</li>
4764+ <li><a href="../index.html">Web2Py v1.62 rc2 documentation</a> &raquo;</li>
4765+ <li><a href="../modules.html" >Web2Py Modules</a> &raquo;</li>
4766+ <li><a href="gluon.html" accesskey="U">Gluon Package</a> &raquo;</li>
4767+ </ul>
4768+ </div>
4769+
4770+ <div class="document">
4771+ <div class="documentwrapper">
4772+ <div class="bodywrapper">
4773+ <div class="body">
4774+
4775+ <div class="section" id="contrib-documentation">
4776+<h1>Contrib Documentation<a class="headerlink" href="#contrib-documentation" title="Permalink to this headline">¶</a></h1>
4777+<p>This page contains the Contrib Package documentation.</p>
4778+<div class="section" id="subpackages">
4779+<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
4780+<ul>
4781+<li class="toctree-l1"><a class="reference external" href="gluon.contrib.pyrtf.html">Pyrtf Documentation</a><ul>
4782+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Elements">The <tt class="docutils literal"><span class="pre">Elements</span></tt> Module</a></li>
4783+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Renderer">The <tt class="docutils literal"><span class="pre">Renderer</span></tt> Module</a></li>
4784+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.PropertySets">The <tt class="docutils literal"><span class="pre">PropertySets</span></tt> Module</a></li>
4785+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf">The <tt class="docutils literal"><span class="pre">pyrtf</span></tt> Package</a></li>
4786+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Constants">The <tt class="docutils literal"><span class="pre">Constants</span></tt> Module</a></li>
4787+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.pyrtf.html#module-gluon.contrib.pyrtf.Styles">The <tt class="docutils literal"><span class="pre">Styles</span></tt> Module</a></li>
4788+</ul>
4789+</li>
4790+<li class="toctree-l1"><a class="reference external" href="gluon.contrib.gateways.html">Gateways Documentation</a><ul>
4791+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.gateways.html#module-gluon.contrib.gateways.fcgi">The <tt class="docutils literal"><span class="pre">fcgi</span></tt> Module</a></li>
4792+</ul>
4793+</li>
4794+<li class="toctree-l1"><a class="reference external" href="gluon.contrib.markdown.html">Markdown Documentation</a><ul>
4795+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.markdown.html#module-gluon.contrib.markdown">The <tt class="docutils literal"><span class="pre">markdown</span></tt> Package</a></li>
4796+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.markdown.html#module-gluon.contrib.markdown.markdown2">The <tt class="docutils literal"><span class="pre">markdown2</span></tt> Module</a></li>
4797+</ul>
4798+</li>
4799+<li class="toctree-l1"><a class="reference external" href="gluon.contrib.memcache.html">Memcache Documentation</a><ul>
4800+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.memcache.html#module-gluon.contrib.memcache.memcache">The <tt class="docutils literal"><span class="pre">memcache</span></tt> Module</a><ul>
4801+<li class="toctree-l3"><a class="reference external" href="gluon.contrib.memcache.html#overview">Overview</a></li>
4802+<li class="toctree-l3"><a class="reference external" href="gluon.contrib.memcache.html#usage-summary">Usage summary</a></li>
4803+<li class="toctree-l3"><a class="reference external" href="gluon.contrib.memcache.html#detailed-documentation">Detailed Documentation</a></li>
4804+</ul>
4805+</li>
4806+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.memcache.html#module-gluon.contrib.memcache">The <tt class="docutils literal"><span class="pre">memcache</span></tt> Package</a></li>
4807+</ul>
4808+</li>
4809+<li class="toctree-l1"><a class="reference external" href="gluon.contrib.simplejson.html">Simplejson Documentation</a><ul>
4810+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.encoder">The <tt class="docutils literal"><span class="pre">encoder</span></tt> Module</a></li>
4811+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.simplejson.html#module-gluon.contrib.simplejson">The <tt class="docutils literal"><span class="pre">simplejson</span></tt> Package</a></li>
4812+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.scanner">The <tt class="docutils literal"><span class="pre">scanner</span></tt> Module</a></li>
4813+<li class="toctree-l2"><a class="reference external" href="gluon.contrib.simplejson.html#module-gluon.contrib.simplejson.decoder">The <tt class="docutils literal"><span class="pre">decoder</span></tt> Module</a></li>
4814+</ul>
4815+</li>
4816+</ul>
4817+</div>
4818+<div class="section" id="module-gluon.contrib.feedparser">
4819+<h2>The <tt class="xref docutils literal"><span class="pre">feedparser</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.feedparser" title="Permalink to this headline">¶</a></h2>
4820+<p>Universal feed parser</p>
4821+<p>Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds</p>
4822+<p>Visit <a class="reference external" href="http://feedparser.org/">http://feedparser.org/</a> for the latest version
4823+Visit <a class="reference external" href="http://feedparser.org/docs/">http://feedparser.org/docs/</a> for the latest documentation</p>
4824+<p>Required: Python 2.1 or later
4825+Recommended: Python 2.3 or later
4826+Recommended: CJKCodecs and iconv_codec &lt;<a class="reference external" href="http://cjkpython.i18n.org/">http://cjkpython.i18n.org/</a>&gt;</p>
4827+<dl class="exception">
4828+<dt id="gluon.contrib.feedparser.CharacterEncodingOverride">
4829+<em class="property">
4830+exception </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">CharacterEncodingOverride</tt><a class="headerlink" href="#gluon.contrib.feedparser.CharacterEncodingOverride" title="Permalink to this definition">¶</a></dt>
4831+<dd>Bases: <a title="gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe" class="reference internal" href="#gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe"><tt class="xref docutils literal"><span class="pre">gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe</span></tt></a></dd></dl>
4832+
4833+<dl class="exception">
4834+<dt id="gluon.contrib.feedparser.CharacterEncodingUnknown">
4835+<em class="property">
4836+exception </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">CharacterEncodingUnknown</tt><a class="headerlink" href="#gluon.contrib.feedparser.CharacterEncodingUnknown" title="Permalink to this definition">¶</a></dt>
4837+<dd>Bases: <a title="gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe" class="reference internal" href="#gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe"><tt class="xref docutils literal"><span class="pre">gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe</span></tt></a></dd></dl>
4838+
4839+<dl class="class">
4840+<dt id="gluon.contrib.feedparser.FeedParserDict">
4841+<em class="property">
4842+class </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">FeedParserDict</tt><a class="headerlink" href="#gluon.contrib.feedparser.FeedParserDict" title="Permalink to this definition">¶</a></dt>
4843+<dd><p>Bases: <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/stdtypes.html#dict"><tt class="xref docutils literal"><span class="pre">dict</span></tt></a></p>
4844+<dl class="method">
4845+<dt id="gluon.contrib.feedparser.FeedParserDict.get">
4846+<tt class="descname">get</tt><big>(</big><em>key</em>, <em>default=None</em><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.FeedParserDict.get" title="Permalink to this definition">¶</a></dt>
4847+<dd></dd></dl>
4848+
4849+<dl class="method">
4850+<dt id="gluon.contrib.feedparser.FeedParserDict.has_key">
4851+<tt class="descname">has_key</tt><big>(</big><em>key</em><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.FeedParserDict.has_key" title="Permalink to this definition">¶</a></dt>
4852+<dd></dd></dl>
4853+
4854+<dl class="method">
4855+<dt id="gluon.contrib.feedparser.FeedParserDict.setdefault">
4856+<tt class="descname">setdefault</tt><big>(</big><em>key</em>, <em>value</em><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.FeedParserDict.setdefault" title="Permalink to this definition">¶</a></dt>
4857+<dd></dd></dl>
4858+
4859+</dd></dl>
4860+
4861+<dl class="exception">
4862+<dt id="gluon.contrib.feedparser.NonXMLContentType">
4863+<em class="property">
4864+exception </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">NonXMLContentType</tt><a class="headerlink" href="#gluon.contrib.feedparser.NonXMLContentType" title="Permalink to this definition">¶</a></dt>
4865+<dd>Bases: <a title="gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe" class="reference internal" href="#gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe"><tt class="xref docutils literal"><span class="pre">gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe</span></tt></a></dd></dl>
4866+
4867+<dl class="exception">
4868+<dt id="gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe">
4869+<em class="property">
4870+exception </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">ThingsNobodyCaresAboutButMe</tt><a class="headerlink" href="#gluon.contrib.feedparser.ThingsNobodyCaresAboutButMe" title="Permalink to this definition">¶</a></dt>
4871+<dd>Bases: <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/exceptions.html#exceptions.Exception"><tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></a></dd></dl>
4872+
4873+<dl class="exception">
4874+<dt id="gluon.contrib.feedparser.UndeclaredNamespace">
4875+<em class="property">
4876+exception </em><tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">UndeclaredNamespace</tt><a class="headerlink" href="#gluon.contrib.feedparser.UndeclaredNamespace" title="Permalink to this definition">¶</a></dt>
4877+<dd>Bases: <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/exceptions.html#exceptions.Exception"><tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></a></dd></dl>
4878+
4879+<dl class="function">
4880+<dt id="gluon.contrib.feedparser.parse">
4881+<tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">parse</tt><big>(</big><em>url_file_stream_or_string</em>, <em>etag=None</em>, <em>modified=None</em>, <em>agent=None</em>, <em>referrer=None</em>, <em>handlers=</em><span class="optional">[</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.parse" title="Permalink to this definition">¶</a></dt>
4882+<dd>Parse a feed from a URL, file, stream, or string</dd></dl>
4883+
4884+<dl class="function">
4885+<dt id="gluon.contrib.feedparser.registerDateHandler">
4886+<tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">registerDateHandler</tt><big>(</big><em>func</em><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.registerDateHandler" title="Permalink to this definition">¶</a></dt>
4887+<dd>Register a date handler function (takes string, returns 9-tuple date in GMT)</dd></dl>
4888+
4889+<dl class="function">
4890+<dt id="gluon.contrib.feedparser.zopeCompatibilityHack">
4891+<tt class="descclassname">gluon.contrib.feedparser.</tt><tt class="descname">zopeCompatibilityHack</tt><big>(</big><big>)</big><a class="headerlink" href="#gluon.contrib.feedparser.zopeCompatibilityHack" title="Permalink to this definition">¶</a></dt>
4892+<dd></dd></dl>
4893+
4894+</div>
4895+<div class="section" id="module-gluon.contrib.memdb">
4896+<h2>The <tt class="xref docutils literal"><span class="pre">memdb</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.memdb" title="Permalink to this headline">¶</a></h2>
4897+<p>This file is part of web2py Web Framework (Copyrighted, 2007)
4898+Developed by Massimo Di Pierro &lt;<a class="reference external" href="mailto:mdipierro&#37;&#52;&#48;cs&#46;depaul&#46;edu">mdipierro<span>&#64;</span>cs<span>&#46;</span>depaul<span>&#46;</span>edu</a>&gt; and Robin B &lt;<a class="reference external" href="mailto:robi123&#37;&#52;&#48;gmail&#46;com">robi123<span>&#64;</span>gmail<span>&#46;</span>com</a>&gt;
4899+License: GPL v2</p>
4900+<dl class="class">
4901+<dt id="gluon.contrib.memdb.MEMDB">
4902+<em class="property">
4903+class </em><tt class="descclassname">gluon.contrib.memdb.</tt><tt class="descname">MEMDB</tt><big>(</big><em>client</em><big>)</big><a class="headerlink" href="#gluon.contrib.memdb.MEMDB" title="Permalink to this definition">¶</a></dt>
4904+<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">gluon.contrib.memdb.SQLStorage</span></tt></p>
4905+<p>an instance of this class represents a database connection</p>
4906+<p>Example:</p>
4907+<blockquote>
4908+<p>db=MEMDB(Client())
4909+db.define_table(&#8216;tablename&#8217;,SQLField(&#8216;fieldname1&#8217;),</p>
4910+<div class="system-message">
4911+<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">&lt;autodoc&gt;</tt>, line 0)</p>
4912+Unexpected indentation.</div>
4913+<blockquote>
4914+SQLField(&#8216;fieldname2&#8217;))</blockquote>
4915+</blockquote>
4916+<dl class="attribute">
4917+<dt id="gluon.contrib.memdb.MEMDB.Field">
4918+<tt class="descname">Field</tt><a class="headerlink" href="#gluon.contrib.memdb.MEMDB.Field" title="Permalink to this definition">¶</a></dt>
4919+<dd>alias of <a title="gluon.contrib.memdb.SQLField" class="reference internal" href="#gluon.contrib.memdb.SQLField"><tt class="xref docutils literal"><span class="pre">SQLField</span></tt></a></dd></dl>
4920+
4921+<dl class="method">
4922+<dt id="gluon.contrib.memdb.MEMDB.define_table">
4923+<tt class="descname">define_table</tt><big>(</big><em>tablename</em>, <em>*fields</em>, <em>**args</em><big>)</big><a class="headerlink" href="#gluon.contrib.memdb.MEMDB.define_table" title="Permalink to this definition">¶</a></dt>
4924+<dd></dd></dl>
4925+
4926+</dd></dl>
4927+
4928+<dl class="class">
4929+<dt id="gluon.contrib.memdb.SQLField">
4930+<em class="property">
4931+class </em><tt class="descclassname">gluon.contrib.memdb.</tt><tt class="descname">SQLField</tt><big>(</big><em>fieldname</em>, <em>type='string'</em>, <em>length=32</em>, <em>default=None</em>, <em>required=False</em>, <em>requires=&lt;function sqlhtml_validators at 0xe08e10c&gt;</em>, <em>ondelete='CASCADE'</em>, <em>notnull=False</em>, <em>unique=False</em>, <em>uploadfield=True</em><big>)</big><a class="headerlink" href="#gluon.contrib.memdb.SQLField" title="Permalink to this definition">¶</a></dt>
4932+<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">gluon.contrib.memdb.SQLXorable</span></tt></p>
4933+<p>an instance of this class represents a database field</p>
4934+<p>example:</p>
4935+<p>a=SQLField(name,&#8217;string&#8217;,length=32,required=False,default=None,requires=IS_NOT_EMPTY(),notnull=False,unique=False,uploadfield=True)</p>
4936+<p>to be used as argument of GQLDB.define_table</p>
4937+<p>allowed field types:
4938+string, boolean, integer, double, text, blob,
4939+date, time, datetime, upload, password</p>
4940+<p>strings must have a length or 32 by default.
4941+fields should have a default or they will be required in SQLFORMs
4942+the requires argument are used to validate the field input in SQLFORMs</p>
4943+<dl class="method">
4944+<dt id="gluon.contrib.memdb.SQLField.formatter">
4945+<tt class="descname">formatter</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#gluon.contrib.memdb.SQLField.formatter" title="Permalink to this definition">¶</a></dt>
4946+<dd></dd></dl>
4947+
4948+</dd></dl>
4949+
4950+</div>
4951+<div class="section" id="module-gluon.contrib.rss2">
4952+<h2>The <tt class="xref docutils literal"><span class="pre">rss2</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.rss2" title="Permalink to this headline">¶</a></h2>
4953+<p>PyRSS2Gen - A Python library for generating RSS 2.0 feeds.</p>
4954+</div>
4955+<div class="section" id="module-gluon.contrib.wsgihooks">
4956+<h2>The <tt class="xref docutils literal"><span class="pre">wsgihooks</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.wsgihooks" title="Permalink to this headline">¶</a></h2>
4957+</div>
4958+<div class="section" id="the-taskbar-widget-module">
4959+<h2>The <tt class="xref docutils literal"><span class="pre">taskbar_widget</span></tt> Module<a class="headerlink" href="#the-taskbar-widget-module" title="Permalink to this headline">¶</a></h2>
4960+<div class="system-message">
4961+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst</tt>, line 52)</p>
4962+autodoc can&#8217;t import/find module &#8216;gluon.contrib.taskbar_widget&#8217;, it reported error: &#8220;No module named win32con&#8221;, please check your spelling and sys.path</div>
4963+</div>
4964+<div class="section" id="module-gluon.contrib.cron">
4965+<h2>The <tt class="xref docutils literal"><span class="pre">cron</span></tt> Module<a class="headerlink" href="#module-gluon.contrib.cron" title="Permalink to this headline">¶</a></h2>
4966+</div>
4967+<div class="section" id="the-gae-memcache-module">
4968+<h2>The <tt class="xref docutils literal"><span class="pre">gae_memcache</span></tt> Module<a class="headerlink" href="#the-gae-memcache-module" title="Permalink to this headline">¶</a></h2>
4969+<div class="system-message">
4970+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst</tt>, line 68)</p>
4971+autodoc can&#8217;t import/find module &#8216;gluon.contrib.gae_memcache&#8217;, it reported error: &#8220;No module named google.appengine.api.memcache&#8221;, please check your spelling and sys.path</div>
4972+</div>
4973+<div class="section" id="the-gql-module">
4974+<h2>The <tt class="xref docutils literal"><span class="pre">gql</span></tt> Module<a class="headerlink" href="#the-gql-module" title="Permalink to this headline">¶</a></h2>
4975+<div class="system-message">
4976+<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">/var/devel_linux/web2py/web2py_app-doc/doc/source/gluon/gluon.contrib.rst</tt>, line 76)</p>
4977+autodoc can&#8217;t import/find module &#8216;gluon.contrib.gql&#8217;, it reported error: &#8220;No module named google.appengine.ext&#8221;, please check your spelling and sys.path</div>
4978+</div>
4979+</div>
4980+
4981+
4982+ </div>
4983+ </div>
4984+ </div>
4985+ <div class="sphinxsidebar">
4986+ <div class="sphinxsidebarwrapper">
4987+ <p class="logo"><a href="../index.html">
4988+ <img class="logo" src="../_static/logo_colored_small.png" alt="Logo"/>
4989+ </a></p>
4990+ <h3><a href="../index.html">Table Of Contents</a></h3>
4991+ <ul>
4992+<li><a class="reference external" href="">Contrib Documentation</a><ul>
4993+<li><a class="reference external" href="#subpackages">Subpackages</a><ul>
4994+</ul>
4995+</li>
4996+<li><a class="reference external" href="#module-gluon.contrib.feedparser">The <tt class="docutils literal"><span class="pre">feedparser</span></tt> Module</a></li>
4997+<li><a class="reference external" href="#module-gluon.contrib.memdb">The <tt class="docutils literal"><span class="pre">memdb</span></tt> Module</a></li>
4998+<li><a class="reference external" href="#module-gluon.contrib.rss2">The <tt class="docutils literal"><span class="pre">rss2</span></tt> Module</a></li>
4999+<li><a class="reference external" href="#module-gluon.contrib.wsgihooks">The <tt class="docutils literal"><span class="pre">wsgihooks</span></tt> Module</a></li>
5000+<li><a class="reference external" href="#the-taskbar-widget-module">The <tt class="docutils literal"><span class="pre">taskbar_widget</span></tt> Module</a></li>
The diff has been truncated for viewing.