Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0acbcb5

Browse files
committed
Issue #17741: use composition, rather than inheritance, for xml.etree.iterparse's result class.
Patch by Stefan Behnel.
1 parent 892584e commit 0acbcb5

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

Lib/xml/etree/ElementTree.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,27 +1265,29 @@ def events(self):
12651265
self.root = self._root
12661266

12671267

1268-
class _IterParseIterator(IncrementalParser):
1268+
class _IterParseIterator:
12691269

12701270
def __init__(self, source, events, parser, close_source=False):
1271-
IncrementalParser.__init__(self, events, parser)
1271+
self._parser = IncrementalParser(events, parser)
12721272
self._file = source
12731273
self._close_file = close_source
1274+
self.root = None
12741275

12751276
def __next__(self):
12761277
while 1:
1277-
for event in self.events():
1278+
for event in self._parser.events():
12781279
return event
1279-
if self._parser is None:
1280+
if self._parser._parser is None:
1281+
self.root = self._parser.root
12801282
if self._close_file:
12811283
self._file.close()
12821284
raise StopIteration
12831285
# load event buffer
12841286
data = self._file.read(16384)
12851287
if data:
1286-
self.data_received(data)
1288+
self._parser.data_received(data)
12871289
else:
1288-
self.eof_received()
1290+
self._parser.eof_received()
12891291

12901292
def __iter__(self):
12911293
return self

0 commit comments

Comments
 (0)