[Python-modules-commits] [nevow] 01/05: Import nevow_0.14.0.orig.tar.gz
Tristan Seligmann
mithrandi at moszumanska.debian.org
Sun May 8 20:17:54 UTC 2016
This is an automated email from the git hooks/post-receive script.
mithrandi pushed a commit to branch master
in repository nevow.
commit d95c1eebc644f2ba58b721eb93aded11c345039d
Author: Tristan Seligmann <mithrandi at debian.org>
Date: Sun May 8 22:13:22 2016 +0200
Import nevow_0.14.0.orig.tar.gz
---
PKG-INFO | 2 +-
.../part00/listings/nevow/plugins/dropin.cache | 50 -------------
.../part01/listings/nevow/plugins/dropin.cache | 50 -------------
nevow/_flat.py | 85 +++++++++++-----------
nevow/_version.py | 4 +-
nevow/athena.py | 7 +-
nevow/json.py | 7 +-
nevow/test/test_appserver.py | 11 ++-
nevow/test/test_guard.py | 13 ++++
nevow/test/test_newflat.py | 22 +++---
10 files changed, 84 insertions(+), 167 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 6e00af0..a4e6db3 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: Nevow
-Version: 0.13.0
+Version: 0.14.0
Summary: Web Application Construction Kit
Home-page: https://github.com/twisted/nevow
Author: Twisted Matrix Labs
diff --git a/doc/howto/chattutorial/part00/listings/nevow/plugins/dropin.cache b/doc/howto/chattutorial/part00/listings/nevow/plugins/dropin.cache
deleted file mode 100755
index f6e255c..0000000
--- a/doc/howto/chattutorial/part00/listings/nevow/plugins/dropin.cache
+++ /dev/null
@@ -1,50 +0,0 @@
-(dp1
-S'echothing_package'
-p2
-ccopy_reg
-_reconstructor
-p3
-(ctwisted.plugin
-CachedDropin
-p4
-c__builtin__
-object
-p5
-NtRp6
-(dp7
-S'moduleName'
-p8
-S'nevow.plugins.echothing_package'
-p9
-sS'description'
-p10
-NsS'plugins'
-p11
-(lp12
-g3
-(ctwisted.plugin
-CachedPlugin
-p13
-g5
-NtRp14
-(dp15
-S'provided'
-p16
-(lp17
-ctwisted.plugin
-IPlugin
-p18
-acnevow.inevow
-IJavascriptPackage
-p19
-asS'dropin'
-p20
-g6
-sS'name'
-p21
-S'chatthingPkg'
-p22
-sg10
-S'\n A L{inevow.IJavascriptPackage} implementation that scans an on-disk\n hierarchy locating modules and packages.\n\n @type baseDir: C{str}\n @ivar baseDir: A path to the root of a JavaScript packages/modules\n filesystem hierarchy.\n '
-p23
-sbasbs.
\ No newline at end of file
diff --git a/doc/howto/chattutorial/part01/listings/nevow/plugins/dropin.cache b/doc/howto/chattutorial/part01/listings/nevow/plugins/dropin.cache
deleted file mode 100755
index d4f8fa7..0000000
--- a/doc/howto/chattutorial/part01/listings/nevow/plugins/dropin.cache
+++ /dev/null
@@ -1,50 +0,0 @@
-(dp1
-S'chatthing_package'
-p2
-ccopy_reg
-_reconstructor
-p3
-(ctwisted.plugin
-CachedDropin
-p4
-c__builtin__
-object
-p5
-NtRp6
-(dp7
-S'moduleName'
-p8
-S'nevow.plugins.chatthing_package'
-p9
-sS'description'
-p10
-NsS'plugins'
-p11
-(lp12
-g3
-(ctwisted.plugin
-CachedPlugin
-p13
-g5
-NtRp14
-(dp15
-S'provided'
-p16
-(lp17
-ctwisted.plugin
-IPlugin
-p18
-acnevow.inevow
-IJavascriptPackage
-p19
-asS'dropin'
-p20
-g6
-sS'name'
-p21
-S'chatthingPkg'
-p22
-sg10
-S'\n A L{inevow.IJavascriptPackage} implementation that scans an on-disk\n hierarchy locating modules and packages.\n\n @type baseDir: C{str}\n @ivar baseDir: A path to the root of a JavaScript packages/modules\n filesystem hierarchy.\n '
-p23
-sbasbs.
\ No newline at end of file
diff --git a/nevow/_flat.py b/nevow/_flat.py
index b43265c..b0c7e03 100644
--- a/nevow/_flat.py
+++ b/nevow/_flat.py
@@ -195,7 +195,7 @@ def _getSlotValue(name, slotData):
-def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
+def _flatten(request, write, root, slotData, renderFactory, inAttribute, inXML):
"""
Make C{root} slightly more flat by yielding all or part of it as strings or
generators.
@@ -240,57 +240,54 @@ def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
root = str(root)
if inAttribute:
root = root.replace('"', '"')
- yield root
+ write(root)
elif isinstance(root, Proto):
root = str(root)
if root:
if root in allowSingleton:
- yield '<' + root + ' />'
+ write('<' + root + ' />')
else:
- yield '<' + root + '></' + root + '>'
+ write('<' + root + '></' + root + '>')
elif isinstance(root, str):
- yield escapedData(root, inAttribute, inXML)
+ write(escapedData(root, inAttribute, inXML))
elif isinstance(root, slot):
slotValue = _getSlotValue(root.name, slotData)
- yield _flatten(request, slotValue, slotData, renderFactory,
+ yield _flatten(request, write, slotValue, slotData, renderFactory,
inAttribute, inXML)
elif isinstance(root, _PrecompiledSlot):
slotValue = _getSlotValue(root.name, slotData)
- yield _flatten(request, slotValue, slotData, renderFactory,
+ yield _flatten(request, write, slotValue, slotData, renderFactory,
root.isAttrib, inXML)
elif isinstance(root, Tag):
if root.pattern is Unset or root.pattern is None:
slotData.append(root.slotData)
if root.render is Unset:
if not root.tagName:
- for element in _flatten(request, root.children,
- slotData, renderFactory,
- False, True):
- yield element
+ yield _flatten(request, write, root.children,
+ slotData, renderFactory,
+ False, True)
else:
- yield '<'
+ write('<')
if isinstance(root.tagName, unicode):
tagName = root.tagName.encode('ascii')
else:
tagName = str(root.tagName)
- yield tagName
+ write(tagName)
for k, v in sorted(root.attributes.iteritems()):
if isinstance(k, unicode):
k = k.encode('ascii')
- yield " " + k + "=\""
- for element in _flatten(request, v, slotData,
- renderFactory, True, True):
- yield element
- yield "\""
+ write(" " + k + "=\"")
+ yield _flatten(request, write, v, slotData,
+ renderFactory, True, True)
+ write("\"")
if root.children or tagName not in allowSingleton:
- yield '>'
- for element in _flatten(request, root.children,
- slotData, renderFactory,
- False, True):
- yield element
- yield '</' + tagName + '>'
+ write('>')
+ yield _flatten(request, write, root.children,
+ slotData, renderFactory,
+ False, True)
+ write('</' + tagName + '>')
else:
- yield ' />'
+ write(' />')
else:
if isinstance(root.render, directive):
rendererName = root.render.name
@@ -299,27 +296,27 @@ def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
root = root.clone(False)
del root._specials['render']
result = renderFactory.renderer(rendererName)(request, root)
- yield _flatten(request, result, slotData, renderFactory, None,
- inXML)
+ yield _flatten(request, write, result, slotData, renderFactory,
+ None, inXML)
slotData.pop()
elif isinstance(root, URL):
- yield escapedData(str(root), inAttribute, inXML)
+ write(escapedData(str(root), inAttribute, inXML))
elif isinstance(root, (tuple, list, GeneratorType)):
for element in root:
- yield _flatten(request, element, slotData, renderFactory,
+ yield _flatten(request, write, element, slotData, renderFactory,
inAttribute, inXML)
elif isinstance(root, Entity):
- yield '&#'
- yield root.num
- yield ';'
+ write('&#')
+ write(root.num)
+ write(';')
elif isinstance(root, xml):
if isinstance(root.content, unicode):
- yield root.content.encode('utf-8')
+ write(root.content.encode('utf-8'))
else:
- yield root.content
+ write(root.content)
elif isinstance(root, Deferred):
yield root.addCallback(
- lambda result: (result, _flatten(request, result, slotData,
+ lambda result: (result, _flatten(request, write, result, slotData,
renderFactory, inAttribute,
inXML)))
else:
@@ -331,8 +328,8 @@ def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
# This seems like a reasonable thing to me, since a renderable is a
# piece of Python code. It should be isolated from this other
# stuff, which is primarily data. -exarkun
- yield _flatten(request, renderable.render(request), [], renderable,
- inAttribute, inXML)
+ yield _flatten(request, write, renderable.render(request), [],
+ renderable, inAttribute, inXML)
else:
renderer = IRenderer(root, None)
if renderer is not None:
@@ -346,7 +343,7 @@ def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
return (result, (str(s) for s in results))
flattened.addCallback(cbFlattened)
if synchronous:
- yield ''.join(map(str, results))
+ write(''.join(map(str, results)))
else:
yield flattened
else:
@@ -354,8 +351,8 @@ def _flatten(request, root, slotData, renderFactory, inAttribute, inXML):
if flattener is not None:
ctx = _ctxForRequest(request, slotData, renderFactory,
inAttribute)
- yield _flatten(request, flattener(root, ctx), slotData,
- renderFactory, False, False)
+ yield _flatten(request, write, flattener(root, ctx),
+ slotData, renderFactory, False, False)
else:
raise UnsupportedType(root)
@@ -381,7 +378,7 @@ class _OldRendererFactory(object):
-def flatten(request, root, inAttribute, inXML):
+def flatten(request, write, root, inAttribute, inXML):
"""
Make C{root} into an iterable of C{str} and L{Deferred}.
@@ -406,7 +403,7 @@ def flatten(request, root, inAttribute, inXML):
flattening C{root}. The returned iterator must not be iterated again
until the L{Deferred} is called back.
"""
- stack = [_flatten(request, root, [], None, inAttribute, inXML)]
+ stack = [_flatten(request, write, root, [], None, inAttribute, inXML)]
while stack:
try:
# In Python 2.5, after an exception, a generator's gi_frame is
@@ -424,7 +421,7 @@ def flatten(request, root, inAttribute, inXML):
raise FlattenerError(e, roots, extract_tb(exc_info()[2]))
else:
if type(element) is str:
- yield element
+ write(element)
elif isinstance(element, Deferred):
def cbx((original, toFlatten)):
stack.append(toFlatten)
@@ -524,6 +521,6 @@ def deferflatten(request, root, inAttribute, inXML, write):
an unexpected exception occurs.
"""
result = Deferred()
- state = flatten(request, root, inAttribute, inXML)
+ state = flatten(request, write, root, inAttribute, inXML)
_flattensome(state, write, _schedule, result)
return result
diff --git a/nevow/_version.py b/nevow/_version.py
index c222c5a..7cf0de2 100644
--- a/nevow/_version.py
+++ b/nevow/_version.py
@@ -4,8 +4,8 @@
# unpacked source archive. Distribution tarballs contain a pre-generated copy
# of this file.
-version_version = '0.13.0'
-version_full = '643fbf92053136c223edfe622b69016c7105ce28'
+version_version = '0.14.0'
+version_full = '8204df0b63285ddbcc02e0cd56b21cd3757f7d83'
def get_versions(default={}, verbose=False):
return {'version': version_version, 'full': version_full}
diff --git a/nevow/athena.py b/nevow/athena.py
index 75da15e..7faf9e5 100644
--- a/nevow/athena.py
+++ b/nevow/athena.py
@@ -1,6 +1,6 @@
# -*- test-case-name: nevow.test.test_athena -*-
-import itertools, os, re, warnings
+import itertools, os, re, warnings, StringIO
from zope.interface import implements
@@ -1681,7 +1681,10 @@ class _LiveMixin(_HasJSClass, _HasCSSModule):
# different module from whence nevow.athena and nevow.testutil could
# import it. -exarkun
from nevow.testutil import FakeRequest
- return "".join(_flat.flatten(FakeRequest(), what, False, False))
+ s = StringIO.StringIO()
+ for _ in _flat.flatten(FakeRequest(), s.write, what, False, False):
+ pass
+ return s.getvalue()
def _structured(self):
diff --git a/nevow/json.py b/nevow/json.py
index 4338c1c..887fc0c 100644
--- a/nevow/json.py
+++ b/nevow/json.py
@@ -293,11 +293,12 @@ def _serialize(obj, w, seen):
elif isinstance(obj, (athena.LiveFragment, athena.LiveElement)):
_serialize(obj._structured(), w, seen)
elif isinstance(obj, (rend.Fragment, page.Element)):
+ def _w(s):
+ w(stringEncode(s.decode('utf-8')))
wrapper = tags.div(xmlns="http://www.w3.org/1999/xhtml")
w('"')
- w(stringEncode(
- "".join(_flat.flatten(None, wrapper[obj],
- False, False)).decode('utf-8')))
+ for _ in _flat.flatten(None, _w, wrapper[obj], False, False):
+ pass
w('"')
else:
transportable = IAthenaTransportable(obj, None)
diff --git a/nevow/test/test_appserver.py b/nevow/test/test_appserver.py
index 1096c3e..151ba8a 100644
--- a/nevow/test/test_appserver.py
+++ b/nevow/test/test_appserver.py
@@ -201,14 +201,17 @@ class Logging(testutil.TestCase):
def renderResource(self, path):
"""@todo: share me"""
- proto = self.site.buildProtocol(address.IPv4Address('TCP', 'fakeaddress', 42))
- proto.transport = FakeTransport(address.IPv4Address('TCP', 'fakeaddress1', 42),
- address.IPv4Address('TCP', 'fakeaddress2', 42))
+ proto = self.site.buildProtocol(
+ address.IPv4Address('TCP', 'fakeaddress', 42))
+ transport = FakeTransport(
+ address.IPv4Address('TCP', 'fakeaddress1', 42),
+ address.IPv4Address('TCP', 'fakeaddress2', 42))
+ proto.makeConnection(transport)
proto.dataReceived('\r\n'.join(['GET %s HTTP/1.0' % path,
'ReFeReR: fakerefer',
'uSeR-AgEnt: fakeagent',
'', '']))
- assert proto.transport.disconnecting
+ assert transport.disconnecting
return proto
diff --git a/nevow/test/test_guard.py b/nevow/test/test_guard.py
index c94f7d0..dc0a6d0 100644
--- a/nevow/test/test_guard.py
+++ b/nevow/test/test_guard.py
@@ -52,6 +52,19 @@ class FakeHTTPChannel:
for data in datas:
self.write(data)
+ def writeHeaders(self, version, code, reason, headers):
+ """
+ Called by L{Request} objects to write a complete set of HTTP headers to
+ a transport.
+ """
+ responseLine = version + b" " + code + b" " + reason + b"\r\n"
+ headerSequence = [responseLine]
+ headerSequence.extend(
+ name + b': ' + value + b"\r\n" for name, value in headers
+ )
+ headerSequence.append(b"\r\n")
+ self.transport.writeSequence(headerSequence)
+
# Utility for testing.
def makeFakeRequest(self, path, username='',password='',
diff --git a/nevow/test/test_newflat.py b/nevow/test/test_newflat.py
index c3e42d1..e567bf0 100644
--- a/nevow/test/test_newflat.py
+++ b/nevow/test/test_newflat.py
@@ -5,7 +5,7 @@
Tests for L{nevow._flat}.
"""
-import sys, traceback
+import sys, traceback, StringIO
from zope.interface import implements
@@ -26,6 +26,7 @@ from nevow.flat.ten import registerFlattener
from nevow.testutil import FakeRequest
from nevow.context import WovenContext
+
# Use the co_filename mechanism (instead of the __file__ mechanism) because
# it is the mechanism traceback formatting uses. The two do not necessarily
# agree with each other. This requires a code object compiled in this file.
@@ -113,16 +114,14 @@ class FlattenTests(TestCase, FlattenMixin):
"""
Tests for L{nevow._flat.flatten}.
"""
- def flatten(self, root, request=None):
+ def flatten(self, root, request=None, inAttribute=False, inXML=False):
"""
Helper to get a string from L{flatten}.
"""
- result = []
- # This isn't something shorter because this way is nicer to look at in
- # a debugger.
- for part in flatten(request, root, False, False):
- result.append(part)
- return "".join(result)
+ s = StringIO.StringIO()
+ for _ in flatten(request, s.write, root, inAttribute, inXML):
+ pass
+ return s.getvalue()
def test_unflattenable(self):
@@ -165,7 +164,8 @@ class FlattenTests(TestCase, FlattenMixin):
compatibility.
"""
self.assertStringEqual(
- "".join(flatten(None, raw('"&<>'), True, True)), '"&<>')
+ self.flatten(raw('"&<>'), inAttribute=True, inXML=True),
+ '"&<>')
def test_attributeString(self):
@@ -174,7 +174,7 @@ class FlattenTests(TestCase, FlattenMixin):
C{True} is passed for C{inAttribute}.
"""
self.assertStringEqual(
- "".join(flatten(None, '"&<>', True, False)),
+ self.flatten('"&<>', inAttribute=True, inXML=False),
""&<>")
@@ -184,7 +184,7 @@ class FlattenTests(TestCase, FlattenMixin):
passed for C{inXML}.
"""
self.assertStringEqual(
- "".join(flatten(None, '"&<>', False, True)),
+ self.flatten('"&<>', inAttribute=False, inXML=True),
'"&<>')
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/nevow.git
More information about the Python-modules-commits
mailing list