Mercurial > genshi > mirror
changeset 575:d2e7fc367384 trunk
Ensure that content gets added after the end of a stream.
author | athomas |
---|---|
date | Mon, 23 Jul 2007 04:22:20 +0000 |
parents | 3014f14fc83d |
children | b00765a115a5 |
files | genshi/filters/transform.py |
diffstat | 1 files changed, 18 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/filters/transform.py +++ b/genshi/filters/transform.py @@ -146,9 +146,9 @@ :param path: an XPath expression (as string) or a `Path` instance """ - self.transforms = [] - if path: - self.transforms.append(SelectTransformation(path)) + if path is None: + path = '.' + self.transforms = [SelectTransformation(path)] def __call__(self, stream): """Apply the transform filter to the marked stream. @@ -732,7 +732,10 @@ yield None, prefix yield mark, event while True: - mark, event = stream.next() + try: + mark, event = stream.next() + except StopIteration: + yield None, element[-1] if not mark: break yield mark, event @@ -912,9 +915,15 @@ :param stream: The marked event stream to filter """ for mark, event in stream: - if mark in (ENTER, OUTSIDE): + if mark is not None: for subevent in self._inject(): yield subevent + yield mark, event + while True: + mark, event = stream.next() + if not mark: + break + yield mark, event yield mark, event @@ -930,7 +939,10 @@ yield mark, event if mark: while True: - mark, event = stream.next() + try: + mark, event = stream.next() + except StopIteration: + break if not mark: break yield mark, event