summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Lib/xml
diff options
context:
space:
mode:
authorshadchin <[email protected]>2026-06-24 07:09:14 +0300
committershadchin <[email protected]>2026-06-24 07:31:09 +0300
commit280914cd46f4411a2e01150bf9d9c53dff19fa66 (patch)
tree841d7b8330cb51e86f2ea6e915e4904563321aca /contrib/tools/python3/Lib/xml
parent1100ced6faf1d14f48cb041f885882d3b37491a2 (diff)
Update Python 3 to 3.13.14
commit_hash:9913a0288f56b5ddd0f99e5b2ff1569d491cbe5d
Diffstat (limited to 'contrib/tools/python3/Lib/xml')
-rw-r--r--contrib/tools/python3/Lib/xml/etree/ElementTree.py96
1 files changed, 57 insertions, 39 deletions
diff --git a/contrib/tools/python3/Lib/xml/etree/ElementTree.py b/contrib/tools/python3/Lib/xml/etree/ElementTree.py
index 9bb09ab5407..ef162a967d8 100644
--- a/contrib/tools/python3/Lib/xml/etree/ElementTree.py
+++ b/contrib/tools/python3/Lib/xml/etree/ElementTree.py
@@ -8,8 +8,8 @@
2. Element represents a single node in this tree.
Interactions with the whole document (reading and writing to/from files) are
- usually done on the ElementTree level. Interactions with a single XML element
- and its sub-elements are done on the Element level.
+ usually done on the ElementTree level. Interactions with a single XML
+ element and its sub-elements are done on the Element level.
Element is a flexible container object designed to store hierarchical data
structures in memory. It can be described as a cross between a list and a
@@ -273,7 +273,8 @@ class Element:
"""Find first matching element by tag name or path.
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return the first matching element, or None if no element was found.
@@ -285,7 +286,8 @@ class Element:
*path* is a string having either an element tag or an XPath,
*default* is the value to return if the element was not found,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return text content of first matching element, or default value if
none was found. Note that if an element is found having no text
@@ -298,7 +300,8 @@ class Element:
"""Find all matching subelements by tag name or path.
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Returns list containing all matching elements in document order.
@@ -309,7 +312,8 @@ class Element:
"""Find all matching subelements by tag name or path.
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return an iterable yielding all matching elements in document order.
@@ -549,8 +553,8 @@ class ElementTree:
def parse(self, source, parser=None):
"""Load external XML document into element tree.
- *source* is a file name or file object, *parser* is an optional parser
- instance that defaults to XMLParser.
+ *source* is a file name or file object, *parser* is an optional
+ parser instance that defaults to XMLParser.
ParseError is raised if the parser fails to parse the document.
@@ -583,7 +587,8 @@ class ElementTree:
def iter(self, tag=None):
"""Create and return tree iterator for the root element.
- The iterator loops over all elements in this tree, in document order.
+ The iterator loops over all elements in this tree, in document
+ order.
*tag* is a string with the tag name to iterate over
(default is to return all elements).
@@ -598,7 +603,8 @@ class ElementTree:
Same as getroot().find(path), which is Element.find()
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return the first matching element, or None if no element was found.
@@ -620,7 +626,8 @@ class ElementTree:
Same as getroot().findtext(path), which is Element.findtext()
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return the first matching element, or None if no element was found.
@@ -642,7 +649,8 @@ class ElementTree:
Same as getroot().findall(path), which is Element.findall().
*path* is a string having either an element tag or an XPath,
- *namespaces* is an optional mapping from namespace prefix to full name.
+ *namespaces* is an optional mapping from namespace prefix to full
+ name.
Return list containing all matching elements in document order.
@@ -689,24 +697,26 @@ class ElementTree:
"""Write element tree to a file as XML.
Arguments:
- *file_or_filename* -- file name or a file object opened for writing
+ *file_or_filename* -- file name or a file object opened for
+ writing
*encoding* -- the output encoding (default: US-ASCII)
- *xml_declaration* -- bool indicating if an XML declaration should be
- added to the output. If None, an XML declaration
- is added if encoding IS NOT either of:
- US-ASCII, UTF-8, or Unicode
+ *xml_declaration* -- bool indicating if an XML declaration should
+ be added to the output. If None, an XML
+ declaration is added if encoding IS NOT
+ either of: US-ASCII, UTF-8, or Unicode
- *default_namespace* -- sets the default XML namespace (for "xmlns")
+ *default_namespace* -- sets the default XML namespace (for
+ "xmlns")
*method* -- either "xml" (default), "html, "text", or "c14n"
*short_empty_elements* -- controls the formatting of elements
- that contain no content. If True (default)
- they are emitted as a single self-closed
- tag, otherwise they are emitted as a pair
- of start/end tags
+ that contain no content. If True
+ (default) they are emitted as a single
+ self-closed tag, otherwise they are
+ emitted as a pair of start/end tags
"""
if self._root is None:
@@ -903,9 +913,12 @@ def _serialize_xml(write, elem, qnames, namespaces,
if elem.tail:
write(_escape_cdata(elem.tail))
+_CDATA_CONTENT_ELEMENTS = {"script", "style", "xmp", "iframe", "noembed",
+ "noframes", "plaintext"}
+
HTML_EMPTY = {"area", "base", "basefont", "br", "col", "embed", "frame", "hr",
"img", "input", "isindex", "link", "meta", "param", "source",
- "track", "wbr"}
+ "track", "wbr", "plaintext"}
def _serialize_html(write, elem, qnames, namespaces, **kwargs):
tag = elem.tag
@@ -946,7 +959,7 @@ def _serialize_html(write, elem, qnames, namespaces, **kwargs):
write(">")
ltag = tag.lower()
if text:
- if ltag == "script" or ltag == "style":
+ if ltag in _CDATA_CONTENT_ELEMENTS:
write(text)
else:
write(_escape_cdata(text))
@@ -1079,9 +1092,9 @@ def tostring(element, encoding=None, method=None, *,
is returned. Otherwise a bytestring is returned.
*element* is an Element instance, *encoding* is an optional output
- encoding defaulting to US-ASCII, *method* is an optional output which can
- be one of "xml" (default), "html", "text" or "c14n", *default_namespace*
- sets the default XML namespace (for "xmlns").
+ encoding defaulting to US-ASCII, *method* is an optional output which
+ can be one of "xml" (default), "html", "text" or "c14n",
+ *default_namespace* sets the default XML namespace (for "xmlns").
Returns an (optionally) encoded string containing the XML data.
@@ -1221,7 +1234,8 @@ def iterparse(source, events=None, parser=None):
"end" events are reported.
*source* is a filename or file object containing XML data, *events* is
- a list of events to report back, *parser* is an optional parser instance.
+ a list of events to report back, *parser* is an optional parser
+ instance.
Returns an iterator providing (event, elem) pairs.
@@ -1753,10 +1767,11 @@ class XMLParser:
def canonicalize(xml_data=None, *, out=None, from_file=None, **options):
"""Convert XML to its C14N 2.0 serialised form.
- If *out* is provided, it must be a file or file-like object that receives
- the serialised canonical XML output (text, not bytes) through its ``.write()``
- method. To write to a file, open it in text mode with encoding "utf-8".
- If *out* is not provided, this function returns the output as text string.
+ If *out* is provided, it must be a file or file-like object that
+ receives the serialised canonical XML output (text, not bytes) through
+ its ``.write()`` method. To write to a file, open it in text mode with
+ encoding "utf-8". If *out* is not provided, this function returns the
+ output as text string.
Either *xml_data* (an XML string) or *from_file* (a file path or
file-like object) must be provided as input.
@@ -1790,19 +1805,22 @@ class C14NWriterTarget:
Serialises parse events to XML C14N 2.0.
The *write* function is used for writing out the resulting data stream
- as text (not bytes). To write to a file, open it in text mode with encoding
- "utf-8" and pass its ``.write`` method.
+ as text (not bytes). To write to a file, open it in text mode with
+ encoding "utf-8" and pass its ``.write`` method.
Configuration options:
- *with_comments*: set to true to include comments
- - *strip_text*: set to true to strip whitespace before and after text content
- - *rewrite_prefixes*: set to true to replace namespace prefixes by "n{number}"
+ - *strip_text*: set to true to strip whitespace before and after text
+ content
+ - *rewrite_prefixes*: set to true to replace namespace prefixes by
+ "n{number}"
- *qname_aware_tags*: a set of qname aware tag names in which prefixes
should be replaced in text content
- - *qname_aware_attrs*: a set of qname aware attribute names in which prefixes
- should be replaced in text content
- - *exclude_attrs*: a set of attribute names that should not be serialised
+ - *qname_aware_attrs*: a set of qname aware attribute names in which
+ prefixes should be replaced in text content
+ - *exclude_attrs*: a set of attribute names that should not be
+ serialised
- *exclude_tags*: a set of tag names that should not be serialised
"""
def __init__(self, write, *,