1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
# -*- test-case-name: nevow.test -*-
# Copyright (c) 2004-2006 Divmod.
# See LICENSE for details.
__version_info__ = (0, 8, 0)
__version__ = '.'.join([str(i) for i in __version_info__[:3]])
if __version_info__[3:]:
__version__ = '-'.join((__version__, '-'.join(__version_info__[3:])))
import sys
from twisted.python.components import registerAdapter
from nevow import flat
from nevow.util import _namedAnyWithBuiltinTranslation
# Python2.2 has a stupidity where instance methods have name
# '__builtin__.instance method' instead of '__builtin__.instancemethod'
# Workaround this error.
def clean(o):
if o == '__builtin__.instancemethod' and sys.version_info < (2,3):
return '__builtin__.instance method'
return o
def load(S):
for line in S.split('\n'):
line = line.strip()
if line and not line.startswith('#'):
(a, o, i) = line.split()
registerAdapter(_namedAnyWithBuiltinTranslation(a),
_namedAnyWithBuiltinTranslation(clean(o)),
_namedAnyWithBuiltinTranslation(i))
def loadFlatteners(S):
for line in S.split('\n'):
line = line.strip()
if line and not line.startswith('#'):
f, o = line.split()
flat.registerFlattener(f, clean(o))
namespace = "http://nevow.com/ns/nevow/0.1"
'''The xml namespace of the nevow elements and attributes.'''
basic_adapters = """
formless.annotate.Group formless.annotate.MetaTypedInterface formless.iformless.ITyped
nevow.accessors.DictionaryContainer __builtin__.dict nevow.inevow.IContainer
nevow.accessors.ListContainer __builtin__.list nevow.inevow.IContainer
nevow.accessors.ListContainer __builtin__.tuple nevow.inevow.IContainer
nevow.accessors.FunctionAccessor __builtin__.function nevow.inevow.IGettable
nevow.accessors.FunctionAccessor __builtin__.method nevow.inevow.IGettable
nevow.accessors.FunctionAccessor __builtin__.instancemethod nevow.inevow.IGettable
nevow.accessors.DirectiveAccessor nevow.stan.directive nevow.inevow.IGettable
nevow.accessors.SlotAccessor nevow.stan.slot nevow.inevow.IGettable
#
formless.webform.PropertyBindingRenderer formless.annotate.Property formless.iformless.IBindingRenderer
formless.webform.MethodBindingRenderer formless.annotate.MethodBinding formless.iformless.IBindingRenderer
formless.webform.GroupBindingRenderer formless.annotate.GroupBinding formless.iformless.IBindingRenderer
#
formless.webform.StringRenderer formless.annotate.String formless.iformless.ITypedRenderer
formless.webform.StringRenderer formless.annotate.Integer formless.iformless.ITypedRenderer
formless.webform.StringRenderer formless.annotate.Directory formless.iformless.ITypedRenderer
formless.webform.PasswordRenderer formless.annotate.Password formless.iformless.ITypedRenderer
formless.webform.PasswordEntryRenderer formless.annotate.PasswordEntry formless.iformless.ITypedRenderer
formless.webform.TextRenderer formless.annotate.Text formless.iformless.ITypedRenderer
formless.webform.BooleanRenderer formless.annotate.Boolean formless.iformless.ITypedRenderer
formless.webform.ChoiceRenderer formless.annotate.Choice formless.iformless.ITypedRenderer
formless.webform.RadioRenderer formless.annotate.Radio formless.iformless.ITypedRenderer
formless.webform.ObjectRenderer formless.annotate.Object formless.iformless.ITypedRenderer
formless.webform.NullRenderer formless.annotate.Request formless.iformless.ITypedRenderer
formless.webform.NullRenderer formless.annotate.Context formless.iformless.ITypedRenderer
formless.webform.FileUploadRenderer formless.annotate.FileUpload formless.iformless.ITypedRenderer
formless.webform.ButtonRenderer formless.annotate.Button formless.iformless.ITypedRenderer
#
formless.processors.ProcessGroupBinding formless.annotate.GroupBinding formless.iformless.IInputProcessor
formless.processors.ProcessMethodBinding formless.annotate.MethodBinding formless.iformless.IInputProcessor
formless.processors.ProcessPropertyBinding formless.annotate.Property formless.iformless.IInputProcessor
formless.processors.ProcessTyped formless.iformless.ITyped formless.iformless.IInputProcessor
formless.processors.ProcessPassword formless.annotate.Password formless.iformless.IInputProcessor
formless.processors.ProcessRequest formless.annotate.Request formless.iformless.IInputProcessor
formless.processors.ProcessContext formless.annotate.Context formless.iformless.IInputProcessor
formless.processors.ProcessUpload formless.annotate.FileUpload formless.iformless.IInputProcessor
#
formless.webform.FormDefaults nevow.appserver.NevowRequest formless.iformless.IFormDefaults
formless.webform.FormDefaults nevow.testutil.FakeRequest formless.iformless.IFormDefaults
formless.webform.FormDefaults nevow.testutil.FakeSession formless.iformless.IFormDefaults
formless.webform.FormDefaults twisted.web.server.Session formless.iformless.IFormDefaults
formless.webform.FormDefaults nevow.guard.GuardSession formless.iformless.IFormDefaults
formless.webform.FormErrors twisted.web.server.Session formless.iformless.IFormErrors
formless.webform.FormErrors nevow.guard.GuardSession formless.iformless.IFormErrors
formless.webform.FormErrors nevow.testutil.FakeSession formless.iformless.IFormErrors
nevow.appserver.OldResourceAdapter twisted.web.resource.IResource nevow.inevow.IResource
nevow.static.staticHTML __builtin__.str nevow.inevow.IResource
nevow.appserver.sessionFactory nevow.context.RequestContext nevow.inevow.ISession
nevow.rend.handFactory nevow.context.RequestContext nevow.inevow.IHand
nevow.rend.statusFactory nevow.context.RequestContext nevow.inevow.IStatusMessage
nevow.rend.defaultsFactory nevow.context.RequestContext formless.iformless.IFormDefaults
nevow.rend.errorsFactory nevow.context.RequestContext formless.iformless.IFormErrors
nevow.rend.originalFactory nevow.context.RequestContext nevow.inevow.IRequest
nevow.appserver.defaultExceptionHandlerFactory nevow.context.SiteContext nevow.inevow.ICanHandleException
nevow.rend.originalFactory nevow.context.PageContext nevow.inevow.IRenderer
nevow.rend.originalFactory nevow.context.PageContext nevow.inevow.IRendererFactory
nevow.rend.originalFactory nevow.context.PageContext formless.iformless.IConfigurableFactory
# URL IResource adapters
nevow.url.URLRedirectAdapter nevow.url.URL nevow.inevow.IResource
nevow.url.URLRedirectAdapter nevow.url.URLOverlay nevow.inevow.IResource
## The tests rely on these. Remove them ASAP.
nevow.util.remainingSegmentsFactory nevow.context.RequestContext nevow.inevow.IRemainingSegments
nevow.util.currentSegmentsFactory nevow.context.RequestContext nevow.inevow.ICurrentSegments
nevow.query.QueryContext nevow.context.WovenContext nevow.inevow.IQ
nevow.query.QueryLoader nevow.inevow.IDocFactory nevow.inevow.IQ
nevow.query.QueryList __builtin__.list nevow.inevow.IQ
nevow.query.QuerySlot nevow.stan.slot nevow.inevow.IQ
nevow.query.QueryNeverFind nevow.stan.xml nevow.inevow.IQ
nevow.query.QueryNeverFind nevow.stan.raw nevow.inevow.IQ
nevow.query.QueryNeverFind nevow.stan.directive nevow.inevow.IQ
# I18N
nevow.i18n.languagesFactory nevow.context.RequestContext nevow.inevow.ILanguages
"""
load(basic_adapters)
flatteners = """
nevow.flat.flatmdom.MicroDomDocumentSerializer twisted.web.microdom.Document
nevow.flat.flatmdom.MicroDomTextSerializer twisted.web.microdom.Text
nevow.flat.flatmdom.MicroDomCommentSerializer twisted.web.microdom.Comment
nevow.flat.flatmdom.MicroDomElementSerializer twisted.web.microdom.Element
nevow.flat.flatmdom.MicroDomEntityReferenceSerializer twisted.web.microdom.EntityReference
nevow.flat.flatmdom.MicroDomCDATASerializer twisted.web.microdom.CDATASection
nevow.flat.flatstan.ProtoSerializer nevow.stan.Proto
nevow.flat.flatstan.TagSerializer nevow.stan.Tag
nevow.flat.flatstan.EntitySerializer nevow.stan.Entity
nevow.flat.flatstan.CommentSerializer nevow.stan.Comment
nevow.flat.flatstan.XmlSerializer nevow.stan.xml
nevow.flat.flatstan.RawSerializer nevow.stan.raw
nevow.flat.flatstan.StringSerializer __builtin__.str
nevow.flat.flatstan.StringSerializer __builtin__.unicode
nevow.flat.flatstan.NoneWarningSerializer __builtin__.NoneType
nevow.flat.flatstan.StringCastSerializer __builtin__.int
nevow.flat.flatstan.StringCastSerializer __builtin__.float
nevow.flat.flatstan.StringCastSerializer __builtin__.long
nevow.flat.flatstan.BooleanSerializer __builtin__.bool
nevow.flat.flatstan.ListSerializer __builtin__.list
nevow.flat.flatstan.StringCastSerializer __builtin__.dict
nevow.flat.flatstan.ListSerializer __builtin__.tuple
nevow.flat.flatstan.ListSerializer __builtin__.generator
nevow.flat.flatstan.FunctionSerializer __builtin__.function
nevow.flat.flatstan.FunctionSerializer __builtin__.type
nevow.flat.flatstan.MethodSerializer __builtin__.instancemethod
nevow.flat.flatstan.RendererSerializer nevow.inevow.IRenderer
nevow.flat.flatstan.DirectiveSerializer nevow.stan.directive
nevow.flat.flatstan.SlotSerializer nevow.stan.slot
nevow.flat.flatstan.ContextSerializer nevow.context.WovenContext
nevow.flat.twist.DeferredSerializer twisted.internet.defer.Deferred
nevow.flat.twist.DeferredSerializer twisted.internet.defer.DeferredList
nevow.flat.flatstan.FailureSerializer twisted.python.failure.Failure
nevow.url.URLOverlaySerializer nevow.url.URLOverlay
nevow.url.URLSerializer nevow.url.URL
# Itertools uses special types
nevow.flat.flatstan.ListSerializer itertools.chain
nevow.flat.flatstan.ListSerializer itertools.count
nevow.flat.flatstan.ListSerializer itertools.cycle
nevow.flat.flatstan.ListSerializer itertools.dropwhile
nevow.flat.flatstan.ListSerializer itertools.ifilter
nevow.flat.flatstan.ListSerializer itertools.ifilterfalse
nevow.flat.flatstan.ListSerializer itertools.imap
nevow.flat.flatstan.ListSerializer itertools.islice
nevow.flat.flatstan.ListSerializer itertools.izip
nevow.flat.flatstan.ListSerializer itertools.repeat
nevow.flat.flatstan.ListSerializer itertools.starmap
nevow.flat.flatstan.ListSerializer itertools.takewhile
nevow.flat.flatstan.DocFactorySerializer nevow.inevow.IDocFactory
nevow.flat.flatstan.inlineJSSerializer nevow.stan.inlineJS
# I18N
nevow.i18n.flattenL10n nevow.i18n.PlaceHolder
"""
flatteners_stackless = """
nevow.flat.flatstan.FunctionSerializer stackless.function
nevow.flat.flatstan.MethodSerializer stackless.instancemethod
"""
try:
import stackless
flatteners += flatteners_stackless
except ImportError:
pass
flatteners_2_4 = """
nevow.flat.flatstan.StringCastSerializer decimal.Decimal
"""
if sys.version_info >= (2, 4):
flatteners += flatteners_2_4
loadFlatteners(flatteners)
__all__ = [
'accessors', 'appserver', 'blocks', 'canvas', 'context', 'dirlist', 'entities', 'events', 'failure', 'guard', 'inevow',
'loaders', 'rend', 'scripts', 'stan', 'static', 'tags', 'test', 'testutil', 'url', 'util', 'vhost', 'flat'
]
|