lxml 5.2.0__cp310-cp310-win32.whl → 5.2.2__cp310-cp310-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. lxml/ElementInclude.py +244 -244
  2. lxml/__init__.py +22 -22
  3. lxml/_elementpath.cp310-win32.pyd +0 -0
  4. lxml/_elementpath.py +341 -341
  5. lxml/apihelpers.pxi +1793 -1793
  6. lxml/builder.cp310-win32.pyd +0 -0
  7. lxml/builder.py +232 -232
  8. lxml/classlookup.pxi +580 -580
  9. lxml/cleanup.pxi +215 -215
  10. lxml/cssselect.py +101 -101
  11. lxml/debug.pxi +90 -90
  12. lxml/docloader.pxi +178 -178
  13. lxml/doctestcompare.py +488 -488
  14. lxml/dtd.pxi +478 -478
  15. lxml/etree.cp310-win32.pyd +0 -0
  16. lxml/etree.h +6 -6
  17. lxml/etree.pyx +3732 -3711
  18. lxml/extensions.pxi +833 -833
  19. lxml/html/ElementSoup.py +10 -10
  20. lxml/html/__init__.py +1923 -1923
  21. lxml/html/_diffcommand.py +86 -86
  22. lxml/html/_html5builder.py +100 -100
  23. lxml/html/_setmixin.py +56 -56
  24. lxml/html/builder.py +133 -133
  25. lxml/html/clean.py +21 -21
  26. lxml/html/defs.py +135 -135
  27. lxml/html/diff.cp310-win32.pyd +0 -0
  28. lxml/html/diff.py +878 -878
  29. lxml/html/formfill.py +299 -299
  30. lxml/html/html5parser.py +260 -260
  31. lxml/html/soupparser.py +314 -314
  32. lxml/html/usedoctest.py +13 -13
  33. lxml/includes/c14n.pxd +25 -25
  34. lxml/includes/config.pxd +3 -3
  35. lxml/includes/dtdvalid.pxd +18 -18
  36. lxml/includes/etree_defs.h +379 -379
  37. lxml/includes/etreepublic.pxd +237 -237
  38. lxml/includes/htmlparser.pxd +56 -56
  39. lxml/includes/lxml-version.h +1 -1
  40. lxml/includes/relaxng.pxd +64 -64
  41. lxml/includes/schematron.pxd +34 -34
  42. lxml/includes/tree.pxd +494 -494
  43. lxml/includes/uri.pxd +5 -5
  44. lxml/includes/xinclude.pxd +22 -22
  45. lxml/includes/xmlerror.pxd +852 -852
  46. lxml/includes/xmlparser.pxd +265 -265
  47. lxml/includes/xmlschema.pxd +35 -35
  48. lxml/includes/xpath.pxd +136 -136
  49. lxml/includes/xslt.pxd +190 -190
  50. lxml/isoschematron/__init__.py +348 -348
  51. lxml/isoschematron/resources/rng/iso-schematron.rng +709 -709
  52. lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl +75 -75
  53. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl +312 -312
  54. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl +1159 -1159
  55. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl +54 -54
  56. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl +1796 -1796
  57. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl +588 -588
  58. lxml/iterparse.pxi +438 -438
  59. lxml/lxml.etree.h +6 -6
  60. lxml/nsclasses.pxi +281 -281
  61. lxml/objectify.cp310-win32.pyd +0 -0
  62. lxml/objectify.pyx +2145 -2145
  63. lxml/objectpath.pxi +332 -332
  64. lxml/parser.pxi +1994 -1994
  65. lxml/parsertarget.pxi +180 -180
  66. lxml/proxy.pxi +619 -619
  67. lxml/public-api.pxi +178 -178
  68. lxml/pyclasslookup.py +3 -3
  69. lxml/readonlytree.pxi +565 -565
  70. lxml/relaxng.pxi +165 -165
  71. lxml/sax.cp310-win32.pyd +0 -0
  72. lxml/sax.py +275 -275
  73. lxml/saxparser.pxi +875 -875
  74. lxml/schematron.pxi +168 -168
  75. lxml/serializer.pxi +1871 -1871
  76. lxml/usedoctest.py +13 -13
  77. lxml/xinclude.pxi +67 -67
  78. lxml/xmlerror.pxi +1654 -1654
  79. lxml/xmlid.pxi +179 -179
  80. lxml/xmlschema.pxi +215 -215
  81. lxml/xpath.pxi +487 -487
  82. lxml/xslt.pxi +950 -950
  83. lxml/xsltext.pxi +242 -242
  84. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/LICENSE.txt +29 -29
  85. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/LICENSES.txt +29 -29
  86. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/METADATA +9 -17
  87. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/RECORD +89 -89
  88. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/WHEEL +0 -0
  89. {lxml-5.2.0.dist-info → lxml-5.2.2.dist-info}/top_level.txt +0 -0
lxml/parsertarget.pxi CHANGED
@@ -1,180 +1,180 @@
1
- # Parser target context (ET target interface)
2
-
3
- cdef object inspect_getargspec
4
- try:
5
- from inspect import getfullargspec as inspect_getargspec
6
- except ImportError:
7
- from inspect import getargspec as inspect_getargspec
8
-
9
-
10
- class _TargetParserResult(Exception):
11
- # Admittedly, this is somewhat ugly, but it's the easiest way
12
- # to push the Python level parser result through the parser
13
- # machinery towards the API level functions
14
- def __init__(self, result):
15
- self.result = result
16
-
17
-
18
- @cython.final
19
- @cython.internal
20
- cdef class _PythonSaxParserTarget(_SaxParserTarget):
21
- cdef object _target_start
22
- cdef object _target_end
23
- cdef object _target_data
24
- cdef object _target_start_ns
25
- cdef object _target_end_ns
26
- cdef object _target_doctype
27
- cdef object _target_pi
28
- cdef object _target_comment
29
- cdef bint _start_takes_nsmap
30
-
31
- def __cinit__(self, target):
32
- cdef int event_filter
33
- event_filter = 0
34
- self._start_takes_nsmap = 0
35
- try:
36
- self._target_start = target.start
37
- if self._target_start is not None:
38
- event_filter |= SAX_EVENT_START
39
- except AttributeError:
40
- pass
41
- else:
42
- try:
43
- arguments = inspect_getargspec(self._target_start)
44
- if len(arguments[0]) > 3 or arguments[1] is not None:
45
- self._start_takes_nsmap = 1
46
- except TypeError:
47
- pass
48
- try:
49
- self._target_end = target.end
50
- if self._target_end is not None:
51
- event_filter |= SAX_EVENT_END
52
- except AttributeError:
53
- pass
54
- try:
55
- self._target_start_ns = target.start_ns
56
- if self._target_start_ns is not None:
57
- event_filter |= SAX_EVENT_START_NS
58
- except AttributeError:
59
- pass
60
- try:
61
- self._target_end_ns = target.end_ns
62
- if self._target_end_ns is not None:
63
- event_filter |= SAX_EVENT_END_NS
64
- except AttributeError:
65
- pass
66
- try:
67
- self._target_data = target.data
68
- if self._target_data is not None:
69
- event_filter |= SAX_EVENT_DATA
70
- except AttributeError:
71
- pass
72
- try:
73
- self._target_doctype = target.doctype
74
- if self._target_doctype is not None:
75
- event_filter |= SAX_EVENT_DOCTYPE
76
- except AttributeError:
77
- pass
78
- try:
79
- self._target_pi = target.pi
80
- if self._target_pi is not None:
81
- event_filter |= SAX_EVENT_PI
82
- except AttributeError:
83
- pass
84
- try:
85
- self._target_comment = target.comment
86
- if self._target_comment is not None:
87
- event_filter |= SAX_EVENT_COMMENT
88
- except AttributeError:
89
- pass
90
- self._sax_event_filter = event_filter
91
-
92
- cdef _handleSaxStart(self, tag, attrib, nsmap):
93
- if self._start_takes_nsmap:
94
- return self._target_start(tag, attrib, nsmap)
95
- else:
96
- return self._target_start(tag, attrib)
97
-
98
- cdef _handleSaxEnd(self, tag):
99
- return self._target_end(tag)
100
-
101
- cdef _handleSaxStartNs(self, prefix, uri):
102
- return self._target_start_ns(prefix, uri)
103
-
104
- cdef _handleSaxEndNs(self, prefix):
105
- return self._target_end_ns(prefix)
106
-
107
- cdef int _handleSaxData(self, data) except -1:
108
- self._target_data(data)
109
-
110
- cdef int _handleSaxDoctype(self, root_tag, public_id, system_id) except -1:
111
- self._target_doctype(root_tag, public_id, system_id)
112
-
113
- cdef _handleSaxPi(self, target, data):
114
- return self._target_pi(target, data)
115
-
116
- cdef _handleSaxComment(self, comment):
117
- return self._target_comment(comment)
118
-
119
-
120
- @cython.final
121
- @cython.internal
122
- @cython.no_gc_clear # Required because parent class uses it - Cython bug.
123
- cdef class _TargetParserContext(_SaxParserContext):
124
- """This class maps SAX2 events to the ET parser target interface.
125
- """
126
- cdef object _python_target
127
- cdef int _setTarget(self, target) except -1:
128
- self._python_target = target
129
- if not isinstance(target, _SaxParserTarget) or \
130
- hasattr(target, '__dict__'):
131
- target = _PythonSaxParserTarget(target)
132
- self._setSaxParserTarget(target)
133
- return 0
134
-
135
- cdef _ParserContext _copy(self):
136
- cdef _TargetParserContext context
137
- context = _ParserContext._copy(self)
138
- context._setTarget(self._python_target)
139
- return context
140
-
141
- cdef void _cleanupTargetParserContext(self, xmlDoc* result) noexcept:
142
- if self._c_ctxt.myDoc is not NULL:
143
- if self._c_ctxt.myDoc is not result and \
144
- self._c_ctxt.myDoc._private is NULL:
145
- # no _Document proxy => orphen
146
- tree.xmlFreeDoc(self._c_ctxt.myDoc)
147
- self._c_ctxt.myDoc = NULL
148
-
149
- cdef object _handleParseResult(self, _BaseParser parser, xmlDoc* result,
150
- filename):
151
- cdef bint recover
152
- recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
153
- try:
154
- if self._has_raised():
155
- self._cleanupTargetParserContext(result)
156
- self._raise_if_stored()
157
- if not self._c_ctxt.wellFormed and not recover:
158
- _raiseParseError(self._c_ctxt, filename, self._error_log)
159
- except:
160
- self._python_target.close()
161
- raise
162
- return self._python_target.close()
163
-
164
- cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser,
165
- xmlDoc* result, filename) except NULL:
166
- cdef bint recover
167
- recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
168
- if result is not NULL and result._private is NULL:
169
- # no _Document proxy => orphen
170
- tree.xmlFreeDoc(result)
171
- try:
172
- self._cleanupTargetParserContext(result)
173
- self._raise_if_stored()
174
- if not self._c_ctxt.wellFormed and not recover:
175
- _raiseParseError(self._c_ctxt, filename, self._error_log)
176
- except:
177
- self._python_target.close()
178
- raise
179
- parse_result = self._python_target.close()
180
- raise _TargetParserResult(parse_result)
1
+ # Parser target context (ET target interface)
2
+
3
+ cdef object inspect_getargspec
4
+ try:
5
+ from inspect import getfullargspec as inspect_getargspec
6
+ except ImportError:
7
+ from inspect import getargspec as inspect_getargspec
8
+
9
+
10
+ class _TargetParserResult(Exception):
11
+ # Admittedly, this is somewhat ugly, but it's the easiest way
12
+ # to push the Python level parser result through the parser
13
+ # machinery towards the API level functions
14
+ def __init__(self, result):
15
+ self.result = result
16
+
17
+
18
+ @cython.final
19
+ @cython.internal
20
+ cdef class _PythonSaxParserTarget(_SaxParserTarget):
21
+ cdef object _target_start
22
+ cdef object _target_end
23
+ cdef object _target_data
24
+ cdef object _target_start_ns
25
+ cdef object _target_end_ns
26
+ cdef object _target_doctype
27
+ cdef object _target_pi
28
+ cdef object _target_comment
29
+ cdef bint _start_takes_nsmap
30
+
31
+ def __cinit__(self, target):
32
+ cdef int event_filter
33
+ event_filter = 0
34
+ self._start_takes_nsmap = 0
35
+ try:
36
+ self._target_start = target.start
37
+ if self._target_start is not None:
38
+ event_filter |= SAX_EVENT_START
39
+ except AttributeError:
40
+ pass
41
+ else:
42
+ try:
43
+ arguments = inspect_getargspec(self._target_start)
44
+ if len(arguments[0]) > 3 or arguments[1] is not None:
45
+ self._start_takes_nsmap = 1
46
+ except TypeError:
47
+ pass
48
+ try:
49
+ self._target_end = target.end
50
+ if self._target_end is not None:
51
+ event_filter |= SAX_EVENT_END
52
+ except AttributeError:
53
+ pass
54
+ try:
55
+ self._target_start_ns = target.start_ns
56
+ if self._target_start_ns is not None:
57
+ event_filter |= SAX_EVENT_START_NS
58
+ except AttributeError:
59
+ pass
60
+ try:
61
+ self._target_end_ns = target.end_ns
62
+ if self._target_end_ns is not None:
63
+ event_filter |= SAX_EVENT_END_NS
64
+ except AttributeError:
65
+ pass
66
+ try:
67
+ self._target_data = target.data
68
+ if self._target_data is not None:
69
+ event_filter |= SAX_EVENT_DATA
70
+ except AttributeError:
71
+ pass
72
+ try:
73
+ self._target_doctype = target.doctype
74
+ if self._target_doctype is not None:
75
+ event_filter |= SAX_EVENT_DOCTYPE
76
+ except AttributeError:
77
+ pass
78
+ try:
79
+ self._target_pi = target.pi
80
+ if self._target_pi is not None:
81
+ event_filter |= SAX_EVENT_PI
82
+ except AttributeError:
83
+ pass
84
+ try:
85
+ self._target_comment = target.comment
86
+ if self._target_comment is not None:
87
+ event_filter |= SAX_EVENT_COMMENT
88
+ except AttributeError:
89
+ pass
90
+ self._sax_event_filter = event_filter
91
+
92
+ cdef _handleSaxStart(self, tag, attrib, nsmap):
93
+ if self._start_takes_nsmap:
94
+ return self._target_start(tag, attrib, nsmap)
95
+ else:
96
+ return self._target_start(tag, attrib)
97
+
98
+ cdef _handleSaxEnd(self, tag):
99
+ return self._target_end(tag)
100
+
101
+ cdef _handleSaxStartNs(self, prefix, uri):
102
+ return self._target_start_ns(prefix, uri)
103
+
104
+ cdef _handleSaxEndNs(self, prefix):
105
+ return self._target_end_ns(prefix)
106
+
107
+ cdef int _handleSaxData(self, data) except -1:
108
+ self._target_data(data)
109
+
110
+ cdef int _handleSaxDoctype(self, root_tag, public_id, system_id) except -1:
111
+ self._target_doctype(root_tag, public_id, system_id)
112
+
113
+ cdef _handleSaxPi(self, target, data):
114
+ return self._target_pi(target, data)
115
+
116
+ cdef _handleSaxComment(self, comment):
117
+ return self._target_comment(comment)
118
+
119
+
120
+ @cython.final
121
+ @cython.internal
122
+ @cython.no_gc_clear # Required because parent class uses it - Cython bug.
123
+ cdef class _TargetParserContext(_SaxParserContext):
124
+ """This class maps SAX2 events to the ET parser target interface.
125
+ """
126
+ cdef object _python_target
127
+ cdef int _setTarget(self, target) except -1:
128
+ self._python_target = target
129
+ if not isinstance(target, _SaxParserTarget) or \
130
+ hasattr(target, '__dict__'):
131
+ target = _PythonSaxParserTarget(target)
132
+ self._setSaxParserTarget(target)
133
+ return 0
134
+
135
+ cdef _ParserContext _copy(self):
136
+ cdef _TargetParserContext context
137
+ context = _ParserContext._copy(self)
138
+ context._setTarget(self._python_target)
139
+ return context
140
+
141
+ cdef void _cleanupTargetParserContext(self, xmlDoc* result) noexcept:
142
+ if self._c_ctxt.myDoc is not NULL:
143
+ if self._c_ctxt.myDoc is not result and \
144
+ self._c_ctxt.myDoc._private is NULL:
145
+ # no _Document proxy => orphen
146
+ tree.xmlFreeDoc(self._c_ctxt.myDoc)
147
+ self._c_ctxt.myDoc = NULL
148
+
149
+ cdef object _handleParseResult(self, _BaseParser parser, xmlDoc* result,
150
+ filename):
151
+ cdef bint recover
152
+ recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
153
+ try:
154
+ if self._has_raised():
155
+ self._cleanupTargetParserContext(result)
156
+ self._raise_if_stored()
157
+ if not self._c_ctxt.wellFormed and not recover:
158
+ _raiseParseError(self._c_ctxt, filename, self._error_log)
159
+ except:
160
+ self._python_target.close()
161
+ raise
162
+ return self._python_target.close()
163
+
164
+ cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser,
165
+ xmlDoc* result, filename) except NULL:
166
+ cdef bint recover
167
+ recover = parser._parse_options & xmlparser.XML_PARSE_RECOVER
168
+ if result is not NULL and result._private is NULL:
169
+ # no _Document proxy => orphen
170
+ tree.xmlFreeDoc(result)
171
+ try:
172
+ self._cleanupTargetParserContext(result)
173
+ self._raise_if_stored()
174
+ if not self._c_ctxt.wellFormed and not recover:
175
+ _raiseParseError(self._c_ctxt, filename, self._error_log)
176
+ except:
177
+ self._python_target.close()
178
+ raise
179
+ parse_result = self._python_target.close()
180
+ raise _TargetParserResult(parse_result)