]> granicus.if.org Git - python/commitdiff
whatsnew: XMLPullParser, plus some doc updates.
authorR David Murray <rdmurray@bitdance.com>
Sun, 5 Jan 2014 04:52:50 +0000 (23:52 -0500)
committerR David Murray <rdmurray@bitdance.com>
Sun, 5 Jan 2014 04:52:50 +0000 (23:52 -0500)
I was confused by the text saying that read_events "iterated", since it
actually returns an iterator (that's what a generator does) that the
caller must then iterate.  So I tidied up the language.  I'm not sure
what the sentence "Events provided in a previous call to read_events()
will not be yielded again." is trying to convey, so I didn't try to fix that.

Also fixed a couple more news items.

Doc/library/xml.etree.elementtree.rst
Doc/whatsnew/3.4.rst
Lib/xml/etree/ElementTree.py
Misc/NEWS

index 0731cd8e98cb5f697ab6f832e9830bcccc73e35d..fb6da15a7491678bdf7d5316523616891e235565 100644 (file)
@@ -105,12 +105,15 @@ Children are nested, and we can access specific child nodes by index::
    >>> root[0][1].text
    '2008'
 
+
+.. _elementtree-pull-parsing:
+
 Pull API for non-blocking parsing
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Most parsing functions provided by this module require to read the whole
-document at once before returning any result.  It is possible to use a
-:class:`XMLParser` and feed data into it incrementally, but it's a push API that
+Most parsing functions provided by this module require the whole document
+to be read at once before returning any result.  It is possible to use an
+:class:`XMLParser` and feed data into it incrementally, but it is a push API that
 calls methods on a callback target, which is too low-level and inconvenient for
 most needs.  Sometimes what the user really wants is to be able to parse XML
 incrementally, without blocking operations, while enjoying the convenience of
@@ -119,7 +122,7 @@ fully constructed :class:`Element` objects.
 The most powerful tool for doing this is :class:`XMLPullParser`.  It does not
 require a blocking read to obtain the XML data, and is instead fed with data
 incrementally with :meth:`XMLPullParser.feed` calls.  To get the parsed XML
-elements, call :meth:`XMLPullParser.read_events`.  Here's an example::
+elements, call :meth:`XMLPullParser.read_events`.  Here is an example::
 
    >>> parser = ET.XMLPullParser(['start', 'end'])
    >>> parser.feed('<mytag>sometext')
@@ -1038,15 +1041,17 @@ XMLPullParser Objects
 
    .. method:: read_events()
 
-      Iterate over the events which have been encountered in the data fed to the
-      parser.  This method yields ``(event, elem)`` pairs, where *event* is a
+      Return an iterator over the events which have been encountered in the
+      data fed to the
+      parser.  The iterator yields ``(event, elem)`` pairs, where *event* is a
       string representing the type of event (e.g. ``"end"``) and *elem* is the
       encountered :class:`Element` object.
 
       Events provided in a previous call to :meth:`read_events` will not be
-      yielded again. As events are consumed from the internal queue only as
-      they are retrieved from the iterator, multiple readers calling
-      :meth:`read_events` in parallel will have unpredictable results.
+      yielded again.  Events are consumed from the internal queue only when
+      they are retrieved from the iterator, so multiple readers iterating in
+      parallel over iterators obtained from :meth:`read_events` will have
+      unpredictable results.
 
    .. note::
 
index ab480203cc646f17f27850a3c5af147905682b34..f954f126eeb944882a848c079d578e808ab70e99 100644 (file)
@@ -1088,9 +1088,10 @@ Richard Oudkerk in :issue:`15528`)
 xml.etree
 ---------
 
-Add an event-driven parser for non-blocking applications,
-:class:`~xml.etree.ElementTree.XMLPullParser`.
-(Contributed by Antoine Pitrou in :issue:`17741`.)
+A new parser, :class:`~xml.etree.ElementTree.XMLPullParser`, allows a
+non-blocking applications to parse XML documents.  An example can be
+seen at :ref:`elementtree-pull-parsing`.  (Contributed by Antoine
+Pitrou in :issue:`17741`.)
 
 The :mod:`xml.etree.ElementTree` :func:`~xml.etree.ElementTree.tostring` and
 :func:`~xml.etree.ElementTree.tostringlist` functions, and the
index cab415cb3b9838f19995c17f97ff645756a56d13..d9e98078c8ec192b9a60bdb9a37fd58cc722761c 100644 (file)
@@ -1251,7 +1251,7 @@ class XMLPullParser:
         self._close_and_return_root()
 
     def read_events(self):
-        """Iterate over currently available (event, elem) pairs.
+        """Return an iterator over currently available (event, elem) pairs.
 
         Events are consumed from the internal event queue as they are
         retrieved from the iterator.
index a640295735c098b0a2ab33e6e92adb50b5477dc0..0e59d0f15191dbaa0eaa28647da91c0b5a5b723d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2193,14 +2193,14 @@ Library
 - Issue #17555: Fix ForkAwareThreadLock so that size of after fork
   registry does not grow exponentially with generation of process.
 
-- Issue #17707: multiprocessing.Queue's get() method does not block for short
-  timeouts.
+- Issue #17707: fix regression in multiprocessing.Queue's get() method where
+  it did not block for short timeouts.
 
-- Isuse #17720: Fix the Python implementation of pickle.Unpickler to correctly
+- Issue #17720: Fix the Python implementation of pickle.Unpickler to correctly
   process the APPENDS opcode when it is used on non-list objects.
 
-- Issue #17012: shutil.which() no longer fallbacks to the PATH environment
-  variable if empty path argument is specified.  Patch by Serhiy Storchaka.
+- Issue #17012: shutil.which() no longer falls back to the PATH environment
+  variable if an empty path argument is specified.  Patch by Serhiy Storchaka.
 
 - Issue #17710: Fix pickle raising a SystemError on bogus input.