Commit 4dbf192f authored by Walter Dörwald's avatar Walter Dörwald

Add next() and __iter__() methods to StreamReader, StreamReaderWriter

and StreamRecoder.

This closes SF bug #634246.
parent 07e14766
...@@ -299,6 +299,17 @@ class StreamReader(Codec): ...@@ -299,6 +299,17 @@ class StreamReader(Codec):
""" """
pass pass
def next(self):
""" Return the next decoded line from the input stream."""
line = self.readline()
if line:
return line
raise StopIteration
def __iter__(self):
return self
def __getattr__(self, name, def __getattr__(self, name,
getattr=getattr): getattr=getattr):
...@@ -351,6 +362,14 @@ class StreamReaderWriter: ...@@ -351,6 +362,14 @@ class StreamReaderWriter:
return self.reader.readlines(sizehint) return self.reader.readlines(sizehint)
def next(self):
""" Return the next decoded line from the input stream."""
return self.reader.next()
def __iter__(self):
return self
def write(self, data): def write(self, data):
return self.writer.write(data) return self.writer.write(data)
...@@ -451,6 +470,14 @@ class StreamRecoder: ...@@ -451,6 +470,14 @@ class StreamRecoder:
data, bytesencoded = self.encode(data, self.errors) data, bytesencoded = self.encode(data, self.errors)
return data.splitlines(1) return data.splitlines(1)
def next(self):
""" Return the next decoded line from the input stream."""
return self.reader.next()
def __iter__(self):
return self
def write(self, data): def write(self, data):
data, bytesdecoded = self.decode(data, self.errors) data, bytesdecoded = self.decode(data, self.errors)
......
...@@ -362,6 +362,9 @@ Extension modules ...@@ -362,6 +362,9 @@ Extension modules
Library Library
------- -------
- StreamReader, StreamReaderWriter and StreamRecoder in the codecs
modules are iterators now.
- gzip.py now handles files exceeding 2GB. Files over 4GB also work - gzip.py now handles files exceeding 2GB. Files over 4GB also work
now (provided the OS supports it, and Python is configured with large now (provided the OS supports it, and Python is configured with large
file support), but in that case the underlying gzip file format can file support), but in that case the underlying gzip file format can
......
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