| Index: third_party/twisted_8_1/twisted/flow/pipe.py
|
| diff --git a/third_party/twisted_8_1/twisted/flow/pipe.py b/third_party/twisted_8_1/twisted/flow/pipe.py
|
| deleted file mode 100644
|
| index 8b38e07fb29e21544889a65343483bfd058430b2..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/flow/pipe.py
|
| +++ /dev/null
|
| @@ -1,112 +0,0 @@
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -#
|
| -# Author: Clark Evans (cce@clarkevans.com)
|
| -
|
| -"""
|
| -flow.pipe
|
| -
|
| -This contains various filter stages which have exactly one input stage. These
|
| -stages take a single input and modify its results, ie a rewrite stage.
|
| -"""
|
| -
|
| -from base import *
|
| -from wrap import wrap
|
| -from twisted.python.failure import Failure
|
| -
|
| -class Pipe(Stage):
|
| - """ abstract stage which takes a single input stage """
|
| - def __init__(self, source, *trap):
|
| - Stage.__init__(self, *trap)
|
| - self._source = wrap(source)
|
| -
|
| - def _yield(self):
|
| - while not self.results \
|
| - and not self.stop \
|
| - and not self.failure:
|
| - source = self._source
|
| - instruction = source._yield()
|
| - if instruction:
|
| - return instruction
|
| - if source.failure:
|
| - self.failure = source.failure
|
| - return
|
| - results = source.results
|
| - stop = source.stop
|
| - if stop:
|
| - self.stop = True
|
| - source.results = []
|
| - self.process(results, stop)
|
| -
|
| - def process(self, results):
|
| - """ process implemented by the pipe
|
| -
|
| - Take a set of possibly empty results and sets the member
|
| - variables: results, stop, or failure appropriately
|
| - """
|
| - raise NotImplementedError
|
| -
|
| -class Filter(Pipe):
|
| - """
|
| - flow equivalent to filter: Filter(function, source, ... )
|
| -
|
| - Yield those elements from a source stage for which a function returns true.
|
| - If the function is None, the identity function is assumed, that is, all
|
| - items yielded that are false (zero or empty) are discarded.
|
| -
|
| - For example::
|
| -
|
| - def odd(val):
|
| - if val % 2:
|
| - return True
|
| -
|
| - def range():
|
| - yield 1
|
| - yield 2
|
| - yield 3
|
| - yield 4
|
| -
|
| - source = flow.Filter(odd,range)
|
| - printFlow(source)
|
| - """
|
| - def __init__(self, func, source, *trap):
|
| - Pipe.__init__(self, source, *trap)
|
| - self._func = func
|
| -
|
| - def process(self, results, stop):
|
| - self.results.extend(filter(self._func,results))
|
| -
|
| -class LineBreak(Pipe):
|
| - """ pipe stage which breaks its input into lines """
|
| - def __init__(self, source, *trap, **kwargs):
|
| - Pipe.__init__(self, source, *trap)
|
| - self._delimiter = kwargs.get('delimiter','\r\n')
|
| - self._maxlen = int(kwargs.get('maxlength', 16384))+1
|
| - self._trailer = int(kwargs.get('trailer',False))
|
| - self._buffer = []
|
| - self._currlen = 0
|
| -
|
| - def process(self, results, stop):
|
| - for block in results:
|
| - lines = str(block).split(self._delimiter)
|
| - if len(lines) < 2:
|
| - tail = lines[0]
|
| - else:
|
| - tail = lines.pop()
|
| - if self._buffer:
|
| - self._buffer.append(lines.pop(0))
|
| - self.results.append("".join(self._buffer))
|
| - self._buffer = []
|
| - self.results.extend(lines)
|
| - self._currlen = 0
|
| - if tail:
|
| - self._currlen += len(tail)
|
| - self._buffer.append(tail)
|
| - if stop and self._buffer:
|
| - tail = "".join(self._buffer)
|
| - if self._trailer:
|
| - self.results.append(tail)
|
| - else:
|
| - raise RuntimeError, "trailing data remains: '%s'" % tail[:10]
|
| -
|
|
|