Skip to content

Commit d2a8e69

Browse files
authored
bpo-43787: Add __iter__ to GzipFile, BZ2File, and LZMAFile (GH-25353)
1 parent d9151cb commit d2a8e69

File tree

4 files changed

+15
-0
lines changed

4 files changed

+15
-0
lines changed

Lib/bz2.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ def readline(self, size=-1):
197197
self._check_can_read()
198198
return self._buffer.readline(size)
199199

200+
def __iter__(self):
201+
self._check_can_read()
202+
return self._buffer.__iter__()
203+
200204
def readlines(self, size=-1):
201205
"""Read a list of lines of uncompressed bytes from the file.
202206

Lib/gzip.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,10 @@ def readline(self, size=-1):
398398
self._check_not_closed()
399399
return self._buffer.readline(size)
400400

401+
def __iter__(self):
402+
self._check_not_closed()
403+
return self._buffer.__iter__()
404+
401405

402406
class _GzipReader(_compression.DecompressReader):
403407
def __init__(self, fp):

Lib/lzma.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,10 @@ def readline(self, size=-1):
221221
self._check_can_read()
222222
return self._buffer.readline(size)
223223

224+
def __iter__(self):
225+
self._check_can_read()
226+
return self._buffer.__iter__()
227+
224228
def write(self, data):
225229
"""Write a bytes object to the file.
226230
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Add ``__iter__()`` method to :class:`bz2.BZ2File`, :class:`gzip.GzipFile`, and
2+
:class:`lzma.LZMAFile`. It makes iterating them about 2x faster. Patch by
3+
Inada Naoki.

0 commit comments

Comments
 (0)