[Python-checkins] cpython: Issue #17741: use composition, rather than inheritance, for

antoine.pitrou python-checkins at python.org
Fri Aug 23 23:04:44 CEST 2013


http://hg.python.org/cpython/rev/815f328a6578
changeset: 85353:815f328a6578
user: Antoine Pitrou <solipsis at pitrou.net>
date: Fri Aug 23 23:04:30 2013 +0200
summary:
 Issue #17741: use composition, rather than inheritance, for xml.etree.iterparse's result class.
Patch by Stefan Behnel.
files:
 Lib/xml/etree/ElementTree.py | 14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -1265,27 +1265,29 @@
 self.root = self._root
 
 
-class _IterParseIterator(IncrementalParser):
+class _IterParseIterator:
 
 def __init__(self, source, events, parser, close_source=False):
- IncrementalParser.__init__(self, events, parser)
+ self._parser = IncrementalParser(events, parser)
 self._file = source
 self._close_file = close_source
+ self.root = None
 
 def __next__(self):
 while 1:
- for event in self.events():
+ for event in self._parser.events():
 return event
- if self._parser is None:
+ if self._parser._parser is None:
+ self.root = self._parser.root
 if self._close_file:
 self._file.close()
 raise StopIteration
 # load event buffer
 data = self._file.read(16384)
 if data:
- self.data_received(data)
+ self._parser.data_received(data)
 else:
- self.eof_received()
+ self._parser.eof_received()
 
 def __iter__(self):
 return self
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /