[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