Commit efff5dd5 authored by Stefan Behnel's avatar Stefan Behnel

Include FusedNode.py and StringIOTree.py in compiled modules.

parent 6cc0a3a7
cimport cython
cdef class StringIOTree:
cdef public list prepended_children
cdef public object stream
cdef public object write
cdef public list markers
@cython.locals(x=StringIOTree)
cpdef getvalue(self)
@cython.locals(child=StringIOTree)
cpdef copyto(self, target)
cpdef commit(self)
#def insert(self, iotree)
#def insertion_point(self)
@cython.locals(c=StringIOTree)
cpdef allmarkers(self)
r"""
Implements a buffer with insertion points. When you know you need to
"get back" to a place and write more later, simply call insertion_point()
at that spot and get a new StringIOTree object that is "left behind".
EXAMPLE:
>>> a = StringIOTree()
>>> _= a.write('first\n')
>>> b = a.insertion_point()
>>> _= a.write('third\n')
>>> _= b.write('second\n')
>>> a.getvalue().split()
['first', 'second', 'third']
>>> c = b.insertion_point()
>>> d = c.insertion_point()
>>> _= d.write('alpha\n')
>>> _= b.write('gamma\n')
>>> _= c.write('beta\n')
>>> b.getvalue().split()
['second', 'alpha', 'beta', 'gamma']
>>> i = StringIOTree()
>>> d.insert(i)
>>> _= i.write('inserted\n')
>>> out = StringIO()
>>> a.copyto(out)
>>> out.getvalue().split()
['first', 'second', 'alpha', 'inserted', 'beta', 'gamma', 'third']
"""
from __future__ import absolute_import, unicode_literals
try: try:
# Prefer cStringIO since io.StringIO() does not support writing 'str' in Py2.
from cStringIO import StringIO from cStringIO import StringIO
except ImportError: except ImportError:
from io import StringIO # does not support writing 'str' in Py2 from io import StringIO
class StringIOTree(object): class StringIOTree(object):
...@@ -69,35 +104,3 @@ class StringIOTree(object): ...@@ -69,35 +104,3 @@ class StringIOTree(object):
def allmarkers(self): def allmarkers(self):
children = self.prepended_children children = self.prepended_children
return [m for c in children for m in c.allmarkers()] + self.markers return [m for c in children for m in c.allmarkers()] + self.markers
__doc__ = r"""
Implements a buffer with insertion points. When you know you need to
"get back" to a place and write more later, simply call insertion_point()
at that spot and get a new StringIOTree object that is "left behind".
EXAMPLE:
>>> a = StringIOTree()
>>> _= a.write('first\n')
>>> b = a.insertion_point()
>>> _= a.write('third\n')
>>> _= b.write('second\n')
>>> a.getvalue().split()
['first', 'second', 'third']
>>> c = b.insertion_point()
>>> d = c.insertion_point()
>>> _= d.write('alpha\n')
>>> _= b.write('gamma\n')
>>> _= c.write('beta\n')
>>> b.getvalue().split()
['second', 'alpha', 'beta', 'gamma']
>>> i = StringIOTree()
>>> d.insert(i)
>>> _= i.write('inserted\n')
>>> out = StringIO()
>>> a.copyto(out)
>>> out.getvalue().split()
['first', 'second', 'alpha', 'inserted', 'beta', 'gamma', 'third']
"""
...@@ -93,8 +93,9 @@ def compile_cython_modules(profile=False, compile_more=False, cython_with_refnan ...@@ -93,8 +93,9 @@ def compile_cython_modules(profile=False, compile_more=False, cython_with_refnan
"Cython.Compiler.FlowControl", "Cython.Compiler.FlowControl",
"Cython.Compiler.Code", "Cython.Compiler.Code",
"Cython.Runtime.refnanny", "Cython.Runtime.refnanny",
# "Cython.Compiler.FusedNode", "Cython.Compiler.FusedNode",
"Cython.Tempita._tempita", "Cython.Tempita._tempita",
"Cython.StringIOTree",
] ]
if compile_more: if compile_more:
compiled_modules.extend([ compiled_modules.extend([
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment