This commit is contained in:
Jesper Jensen 2025-12-23 15:14:19 +08:00 committed by GitHub
commit 328e89a416
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 18 additions and 2 deletions

View file

@ -447,6 +447,15 @@ just past the last parse event (regardless of whether there was an associated
callback).
.. attribute:: xmlparser.CurrentByteCount
Number of bytes in the current event. ``0`` if the event is for the end tag
event for *empty-element* tags or is inside a reference to an internal
entity.
.. versionadded:: 3.14
.. attribute:: xmlparser.CurrentByteIndex
Current byte index in the parser input.

View file

@ -522,6 +522,7 @@ class PositionTest(unittest.TestCase):
def check_pos(self, event):
pos = (event,
self.parser.CurrentByteIndex,
self.parser.CurrentByteCount,
self.parser.CurrentLineNumber,
self.parser.CurrentColumnNumber)
self.assertTrue(self.upto < len(self.expected_list),
@ -536,8 +537,8 @@ class PositionTest(unittest.TestCase):
self.parser.StartElementHandler = self.StartElementHandler
self.parser.EndElementHandler = self.EndElementHandler
self.upto = 0
self.expected_list = [('s', 0, 1, 0), ('s', 5, 2, 1), ('s', 11, 3, 2),
('e', 15, 3, 6), ('e', 17, 4, 1), ('e', 22, 5, 0)]
self.expected_list = [('s', 0, 3, 1, 0), ('s', 5, 3, 2, 1), ('s', 11, 4, 3, 2),
('e', 15, 0, 3, 6), ('e', 17, 4, 4, 1), ('e', 22, 4, 5, 0)]
xml = b'<a>\n <b>\n <c/>\n </b>\n</a>'
self.parser.Parse(xml, True)

View file

@ -900,6 +900,7 @@ Muhammad Jehanzeb
Drew Jenkins
Flemming Kjær Jensen
Philip H. Jensen
Jesper Jensen
Philip Jenvey
MunSic Jeong
Chris Jerdonek

View file

@ -0,0 +1,3 @@
Expose the :attr:`xmlparser.CurrentByteCount` field for :mod:`Expat XML
<xml.parsers.expat>` parsers.
Patch by Jesper Jensen.

View file

@ -1656,6 +1656,7 @@ INT_GETTER(ErrorByteIndex)
INT_GETTER(CurrentLineNumber)
INT_GETTER(CurrentColumnNumber)
INT_GETTER(CurrentByteIndex)
INT_GETTER(CurrentByteCount)
#undef INT_GETTER
@ -1853,6 +1854,7 @@ static PyGetSetDef xmlparse_getsetlist[] = {
XMLPARSE_GETTER_DEF(CurrentLineNumber)
XMLPARSE_GETTER_DEF(CurrentColumnNumber)
XMLPARSE_GETTER_DEF(CurrentByteIndex)
XMLPARSE_GETTER_DEF(CurrentByteCount)
XMLPARSE_GETTER_SETTER_DEF(buffer_size)
XMLPARSE_GETTER_SETTER_DEF(buffer_text)
XMLPARSE_GETTER_DEF(buffer_used)