lxml 6.0.0__cp311-cp311-win_arm64.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 (177) hide show
  1. lxml/ElementInclude.py +244 -0
  2. lxml/__init__.py +22 -0
  3. lxml/_elementpath.cp311-win_arm64.pyd +0 -0
  4. lxml/_elementpath.py +343 -0
  5. lxml/apihelpers.pxi +1801 -0
  6. lxml/builder.cp311-win_arm64.pyd +0 -0
  7. lxml/builder.py +243 -0
  8. lxml/classlookup.pxi +580 -0
  9. lxml/cleanup.pxi +215 -0
  10. lxml/cssselect.py +101 -0
  11. lxml/debug.pxi +36 -0
  12. lxml/docloader.pxi +178 -0
  13. lxml/doctestcompare.py +488 -0
  14. lxml/dtd.pxi +479 -0
  15. lxml/etree.cp311-win_arm64.pyd +0 -0
  16. lxml/etree.h +244 -0
  17. lxml/etree.pyx +3853 -0
  18. lxml/etree_api.h +204 -0
  19. lxml/extensions.pxi +830 -0
  20. lxml/html/ElementSoup.py +10 -0
  21. lxml/html/__init__.py +1927 -0
  22. lxml/html/_diffcommand.py +86 -0
  23. lxml/html/_difflib.cp311-win_arm64.pyd +0 -0
  24. lxml/html/_difflib.py +2106 -0
  25. lxml/html/_html5builder.py +100 -0
  26. lxml/html/_setmixin.py +56 -0
  27. lxml/html/builder.py +173 -0
  28. lxml/html/clean.py +21 -0
  29. lxml/html/defs.py +135 -0
  30. lxml/html/diff.cp311-win_arm64.pyd +0 -0
  31. lxml/html/diff.py +972 -0
  32. lxml/html/formfill.py +299 -0
  33. lxml/html/html5parser.py +260 -0
  34. lxml/html/soupparser.py +314 -0
  35. lxml/html/usedoctest.py +13 -0
  36. lxml/includes/__init__.pxd +0 -0
  37. lxml/includes/__init__.py +0 -0
  38. lxml/includes/c14n.pxd +25 -0
  39. lxml/includes/config.pxd +3 -0
  40. lxml/includes/dtdvalid.pxd +18 -0
  41. lxml/includes/etree_defs.h +379 -0
  42. lxml/includes/etreepublic.pxd +237 -0
  43. lxml/includes/extlibs/__init__.py +0 -0
  44. lxml/includes/extlibs/zconf.h +543 -0
  45. lxml/includes/extlibs/zlib.h +1938 -0
  46. lxml/includes/htmlparser.pxd +56 -0
  47. lxml/includes/libexslt/__init__.py +0 -0
  48. lxml/includes/libexslt/exslt.h +108 -0
  49. lxml/includes/libexslt/exsltconfig.h +70 -0
  50. lxml/includes/libexslt/exsltexports.h +63 -0
  51. lxml/includes/libexslt/libexslt.h +29 -0
  52. lxml/includes/libxml/HTMLparser.h +320 -0
  53. lxml/includes/libxml/HTMLtree.h +147 -0
  54. lxml/includes/libxml/SAX.h +204 -0
  55. lxml/includes/libxml/SAX2.h +173 -0
  56. lxml/includes/libxml/__init__.py +0 -0
  57. lxml/includes/libxml/c14n.h +128 -0
  58. lxml/includes/libxml/catalog.h +182 -0
  59. lxml/includes/libxml/chvalid.h +230 -0
  60. lxml/includes/libxml/debugXML.h +217 -0
  61. lxml/includes/libxml/dict.h +81 -0
  62. lxml/includes/libxml/encoding.h +233 -0
  63. lxml/includes/libxml/entities.h +151 -0
  64. lxml/includes/libxml/globals.h +529 -0
  65. lxml/includes/libxml/hash.h +236 -0
  66. lxml/includes/libxml/list.h +137 -0
  67. lxml/includes/libxml/nanoftp.h +186 -0
  68. lxml/includes/libxml/nanohttp.h +81 -0
  69. lxml/includes/libxml/parser.h +1265 -0
  70. lxml/includes/libxml/parserInternals.h +662 -0
  71. lxml/includes/libxml/pattern.h +100 -0
  72. lxml/includes/libxml/relaxng.h +218 -0
  73. lxml/includes/libxml/schemasInternals.h +958 -0
  74. lxml/includes/libxml/schematron.h +142 -0
  75. lxml/includes/libxml/threads.h +94 -0
  76. lxml/includes/libxml/tree.h +1314 -0
  77. lxml/includes/libxml/uri.h +94 -0
  78. lxml/includes/libxml/valid.h +448 -0
  79. lxml/includes/libxml/xinclude.h +129 -0
  80. lxml/includes/libxml/xlink.h +189 -0
  81. lxml/includes/libxml/xmlIO.h +369 -0
  82. lxml/includes/libxml/xmlautomata.h +146 -0
  83. lxml/includes/libxml/xmlerror.h +919 -0
  84. lxml/includes/libxml/xmlexports.h +50 -0
  85. lxml/includes/libxml/xmlmemory.h +228 -0
  86. lxml/includes/libxml/xmlmodule.h +57 -0
  87. lxml/includes/libxml/xmlreader.h +428 -0
  88. lxml/includes/libxml/xmlregexp.h +222 -0
  89. lxml/includes/libxml/xmlsave.h +88 -0
  90. lxml/includes/libxml/xmlschemas.h +246 -0
  91. lxml/includes/libxml/xmlschemastypes.h +152 -0
  92. lxml/includes/libxml/xmlstring.h +140 -0
  93. lxml/includes/libxml/xmlunicode.h +202 -0
  94. lxml/includes/libxml/xmlversion.h +526 -0
  95. lxml/includes/libxml/xmlwriter.h +488 -0
  96. lxml/includes/libxml/xpath.h +575 -0
  97. lxml/includes/libxml/xpathInternals.h +632 -0
  98. lxml/includes/libxml/xpointer.h +137 -0
  99. lxml/includes/libxslt/__init__.py +0 -0
  100. lxml/includes/libxslt/attributes.h +39 -0
  101. lxml/includes/libxslt/documents.h +93 -0
  102. lxml/includes/libxslt/extensions.h +262 -0
  103. lxml/includes/libxslt/extra.h +72 -0
  104. lxml/includes/libxslt/functions.h +78 -0
  105. lxml/includes/libxslt/imports.h +75 -0
  106. lxml/includes/libxslt/keys.h +53 -0
  107. lxml/includes/libxslt/libxslt.h +36 -0
  108. lxml/includes/libxslt/namespaces.h +68 -0
  109. lxml/includes/libxslt/numbersInternals.h +73 -0
  110. lxml/includes/libxslt/preproc.h +43 -0
  111. lxml/includes/libxslt/security.h +104 -0
  112. lxml/includes/libxslt/templates.h +77 -0
  113. lxml/includes/libxslt/transform.h +207 -0
  114. lxml/includes/libxslt/trio.h +216 -0
  115. lxml/includes/libxslt/triodef.h +220 -0
  116. lxml/includes/libxslt/variables.h +118 -0
  117. lxml/includes/libxslt/win32config.h +51 -0
  118. lxml/includes/libxslt/xslt.h +110 -0
  119. lxml/includes/libxslt/xsltInternals.h +1992 -0
  120. lxml/includes/libxslt/xsltconfig.h +179 -0
  121. lxml/includes/libxslt/xsltexports.h +64 -0
  122. lxml/includes/libxslt/xsltlocale.h +44 -0
  123. lxml/includes/libxslt/xsltutils.h +343 -0
  124. lxml/includes/lxml-version.h +3 -0
  125. lxml/includes/relaxng.pxd +64 -0
  126. lxml/includes/schematron.pxd +34 -0
  127. lxml/includes/tree.pxd +492 -0
  128. lxml/includes/uri.pxd +5 -0
  129. lxml/includes/xinclude.pxd +22 -0
  130. lxml/includes/xmlerror.pxd +852 -0
  131. lxml/includes/xmlparser.pxd +303 -0
  132. lxml/includes/xmlschema.pxd +35 -0
  133. lxml/includes/xpath.pxd +136 -0
  134. lxml/includes/xslt.pxd +190 -0
  135. lxml/isoschematron/__init__.py +348 -0
  136. lxml/isoschematron/resources/rng/iso-schematron.rng +709 -0
  137. lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl +75 -0
  138. lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl +77 -0
  139. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl +313 -0
  140. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl +1160 -0
  141. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl +55 -0
  142. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl +1796 -0
  143. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl +588 -0
  144. lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt +84 -0
  145. lxml/iterparse.pxi +438 -0
  146. lxml/lxml.etree.h +244 -0
  147. lxml/lxml.etree_api.h +204 -0
  148. lxml/nsclasses.pxi +281 -0
  149. lxml/objectify.cp311-win_arm64.pyd +0 -0
  150. lxml/objectify.pyx +2149 -0
  151. lxml/objectpath.pxi +332 -0
  152. lxml/parser.pxi +2059 -0
  153. lxml/parsertarget.pxi +180 -0
  154. lxml/proxy.pxi +619 -0
  155. lxml/public-api.pxi +178 -0
  156. lxml/pyclasslookup.py +3 -0
  157. lxml/readonlytree.pxi +565 -0
  158. lxml/relaxng.pxi +165 -0
  159. lxml/sax.cp311-win_arm64.pyd +0 -0
  160. lxml/sax.py +286 -0
  161. lxml/saxparser.pxi +875 -0
  162. lxml/schematron.pxi +173 -0
  163. lxml/serializer.pxi +1849 -0
  164. lxml/usedoctest.py +13 -0
  165. lxml/xinclude.pxi +67 -0
  166. lxml/xmlerror.pxi +1654 -0
  167. lxml/xmlid.pxi +179 -0
  168. lxml/xmlschema.pxi +215 -0
  169. lxml/xpath.pxi +487 -0
  170. lxml/xslt.pxi +957 -0
  171. lxml/xsltext.pxi +242 -0
  172. lxml-6.0.0.dist-info/METADATA +163 -0
  173. lxml-6.0.0.dist-info/RECORD +177 -0
  174. lxml-6.0.0.dist-info/WHEEL +5 -0
  175. lxml-6.0.0.dist-info/licenses/LICENSE.txt +31 -0
  176. lxml-6.0.0.dist-info/licenses/LICENSES.txt +29 -0
  177. lxml-6.0.0.dist-info/top_level.txt +1 -0
lxml/xsltext.pxi ADDED
@@ -0,0 +1,242 @@
1
+ # XSLT extension elements
2
+
3
+ cdef class XSLTExtension:
4
+ """Base class of an XSLT extension element.
5
+ """
6
+ def execute(self, context, self_node, input_node, output_parent):
7
+ """execute(self, context, self_node, input_node, output_parent)
8
+ Execute this extension element.
9
+
10
+ Subclasses must override this method. They may append
11
+ elements to the `output_parent` element here, or set its text
12
+ content. To this end, the `input_node` provides read-only
13
+ access to the current node in the input document, and the
14
+ `self_node` points to the extension element in the stylesheet.
15
+
16
+ Note that the `output_parent` parameter may be `None` if there
17
+ is no parent element in the current context (e.g. no content
18
+ was added to the output tree yet).
19
+ """
20
+ pass
21
+
22
+ def apply_templates(self, _XSLTContext context not None, node, output_parent=None,
23
+ *, elements_only=False, remove_blank_text=False):
24
+ """apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)
25
+
26
+ Call this method to retrieve the result of applying templates
27
+ to an element.
28
+
29
+ The return value is a list of elements or text strings that
30
+ were generated by the XSLT processor. If you pass
31
+ ``elements_only=True``, strings will be discarded from the result
32
+ list. The option ``remove_blank_text=True`` will only discard
33
+ strings that consist entirely of whitespace (e.g. formatting).
34
+ These options do not apply to Elements, only to bare string results.
35
+
36
+ If you pass an Element as `output_parent` parameter, the result
37
+ will instead be appended to the element (including attributes
38
+ etc.) and the return value will be `None`. This is a safe way
39
+ to generate content into the output document directly, without
40
+ having to take care of special values like text or attributes.
41
+ Note that the string discarding options will be ignored in this
42
+ case.
43
+ """
44
+ cdef xmlNode* c_parent
45
+ cdef xmlNode* c_node
46
+ cdef xmlNode* c_context_node
47
+ assert context._xsltCtxt is not NULL, "XSLT context not initialised"
48
+ c_context_node = _roNodeOf(node)
49
+ #assert c_context_node.doc is context._xsltContext.node.doc, \
50
+ # "switching input documents during transformation is not currently supported"
51
+
52
+ if output_parent is not None:
53
+ c_parent = _nonRoNodeOf(output_parent)
54
+ else:
55
+ c_parent = tree.xmlNewDocNode(
56
+ context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)
57
+
58
+ c_node = context._xsltCtxt.insert
59
+ context._xsltCtxt.insert = c_parent
60
+ xslt.xsltProcessOneNode(
61
+ context._xsltCtxt, c_context_node, NULL)
62
+ context._xsltCtxt.insert = c_node
63
+
64
+ if output_parent is not None:
65
+ return None
66
+
67
+ try:
68
+ return self._collectXSLTResultContent(
69
+ context, c_parent, elements_only, remove_blank_text)
70
+ finally:
71
+ # free all intermediate nodes that will not be freed by proxies
72
+ tree.xmlFreeNode(c_parent)
73
+
74
+ def process_children(self, _XSLTContext context not None, output_parent=None,
75
+ *, elements_only=False, remove_blank_text=False):
76
+ """process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)
77
+
78
+ Call this method to process the XSLT content of the extension
79
+ element itself.
80
+
81
+ The return value is a list of elements or text strings that
82
+ were generated by the XSLT processor. If you pass
83
+ ``elements_only=True``, strings will be discarded from the result
84
+ list. The option ``remove_blank_text=True`` will only discard
85
+ strings that consist entirely of whitespace (e.g. formatting).
86
+ These options do not apply to Elements, only to bare string results.
87
+
88
+ If you pass an Element as `output_parent` parameter, the result
89
+ will instead be appended to the element (including attributes
90
+ etc.) and the return value will be `None`. This is a safe way
91
+ to generate content into the output document directly, without
92
+ having to take care of special values like text or attributes.
93
+ Note that the string discarding options will be ignored in this
94
+ case.
95
+ """
96
+ cdef xmlNode* c_parent
97
+ cdef xslt.xsltTransformContext* c_ctxt = context._xsltCtxt
98
+ cdef xmlNode* c_old_output_parent = c_ctxt.insert
99
+ assert context._xsltCtxt is not NULL, "XSLT context not initialised"
100
+
101
+ # output_parent node is used for adding results instead of
102
+ # elements list used in apply_templates, that's easier and allows to
103
+ # use attributes added to extension element with <xsl:attribute>.
104
+
105
+ if output_parent is not None:
106
+ c_parent = _nonRoNodeOf(output_parent)
107
+ else:
108
+ c_parent = tree.xmlNewDocNode(
109
+ context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)
110
+
111
+ c_ctxt.insert = c_parent
112
+ xslt.xsltApplyOneTemplate(c_ctxt,
113
+ c_ctxt.node, c_ctxt.inst.children, NULL, NULL)
114
+ c_ctxt.insert = c_old_output_parent
115
+
116
+ if output_parent is not None:
117
+ return None
118
+
119
+ try:
120
+ return self._collectXSLTResultContent(
121
+ context, c_parent, elements_only, remove_blank_text)
122
+ finally:
123
+ # free all intermediate nodes that will not be freed by proxies
124
+ tree.xmlFreeNode(c_parent)
125
+
126
+ cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent,
127
+ bint elements_only, bint remove_blank_text):
128
+ cdef xmlNode* c_node
129
+ cdef xmlNode* c_next
130
+ cdef _ReadOnlyProxy proxy
131
+ cdef list results = [] # or maybe _collectAttributes(c_parent, 2) ?
132
+ c_node = c_parent.children
133
+ while c_node is not NULL:
134
+ c_next = c_node.next
135
+ if c_node.type == tree.XML_TEXT_NODE:
136
+ if not elements_only:
137
+ s = funicode(c_node.content)
138
+ if not remove_blank_text or s.strip():
139
+ results.append(s)
140
+ s = None
141
+ elif c_node.type == tree.XML_ELEMENT_NODE:
142
+ proxy = _newReadOnlyProxy(
143
+ context._extension_element_proxy, c_node)
144
+ results.append(proxy)
145
+ # unlink node and make sure it will be freed later on
146
+ tree.xmlUnlinkNode(c_node)
147
+ proxy.free_after_use()
148
+ else:
149
+ raise TypeError, \
150
+ f"unsupported XSLT result type: {c_node.type}"
151
+ c_node = c_next
152
+ return results
153
+
154
+
155
+ cdef _registerXSLTExtensions(xslt.xsltTransformContext* c_ctxt,
156
+ extension_dict):
157
+ for ns_utf, name_utf in extension_dict:
158
+ xslt.xsltRegisterExtElement(
159
+ c_ctxt, _xcstr(name_utf), _xcstr(ns_utf),
160
+ <xslt.xsltTransformFunction>_callExtensionElement)
161
+
162
+ cdef void _callExtensionElement(xslt.xsltTransformContext* c_ctxt,
163
+ xmlNode* c_context_node,
164
+ xmlNode* c_inst_node,
165
+ void* dummy) noexcept with gil:
166
+ cdef _XSLTContext context
167
+ cdef XSLTExtension extension
168
+ cdef python.PyObject* dict_result
169
+ cdef xmlNode* c_node
170
+ cdef _ReadOnlyProxy context_node = None, self_node = None
171
+ cdef object output_parent # not restricted to ro-nodes
172
+ c_uri = _getNs(c_inst_node)
173
+ if c_uri is NULL:
174
+ # not allowed, and should never happen
175
+ return
176
+ if c_ctxt.xpathCtxt.userData is NULL:
177
+ # just for safety, should never happen
178
+ return
179
+ context = <_XSLTContext>c_ctxt.xpathCtxt.userData
180
+ try:
181
+ try:
182
+ dict_result = python.PyDict_GetItem(
183
+ context._extension_elements, (c_uri, c_inst_node.name))
184
+ if dict_result is NULL:
185
+ raise KeyError, f"extension element {funicode(c_inst_node.name)} not found"
186
+ extension = <object>dict_result
187
+
188
+ try:
189
+ # build the context proxy nodes
190
+ self_node = _newReadOnlyProxy(None, c_inst_node)
191
+ if _isElement(c_ctxt.insert):
192
+ output_parent = _newAppendOnlyProxy(self_node, c_ctxt.insert)
193
+ else:
194
+ # may be the document node or other stuff
195
+ output_parent = _newOpaqueAppendOnlyNodeWrapper(c_ctxt.insert)
196
+ if c_context_node.type in (tree.XML_DOCUMENT_NODE,
197
+ tree.XML_HTML_DOCUMENT_NODE):
198
+ c_node = tree.xmlDocGetRootElement(<xmlDoc*>c_context_node)
199
+ if c_node is not NULL:
200
+ context_node = _newReadOnlyProxy(self_node, c_node)
201
+ else:
202
+ context_node = None
203
+ elif c_context_node.type in (tree.XML_ATTRIBUTE_NODE,
204
+ tree.XML_TEXT_NODE,
205
+ tree.XML_CDATA_SECTION_NODE):
206
+ # this isn't easy to support using read-only
207
+ # nodes, as the smart-string factory must
208
+ # instantiate the parent proxy somehow...
209
+ raise TypeError(f"Unsupported element type: {c_context_node.type}")
210
+ else:
211
+ context_node = _newReadOnlyProxy(self_node, c_context_node)
212
+
213
+ # run the XSLT extension
214
+ context._extension_element_proxy = self_node
215
+ extension.execute(context, self_node, context_node, output_parent)
216
+ finally:
217
+ context._extension_element_proxy = None
218
+ if self_node is not None:
219
+ _freeReadOnlyProxies(self_node)
220
+ except Exception as e:
221
+ try:
222
+ e = unicode(e).encode("UTF-8")
223
+ except:
224
+ e = repr(e).encode("UTF-8")
225
+ message = python.PyBytes_FromFormat(
226
+ "Error executing extension element '%s': %s",
227
+ c_inst_node.name, _cstr(e))
228
+ xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, "%s", message)
229
+ context._exc._store_raised()
230
+ except:
231
+ # just in case
232
+ message = python.PyBytes_FromFormat(
233
+ "Error executing extension element '%s'", c_inst_node.name)
234
+ xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, "%s", message)
235
+ context._exc._store_raised()
236
+ except:
237
+ # no Python functions here - everything can fail...
238
+ xslt.xsltTransformError(c_ctxt, NULL, c_inst_node,
239
+ "Error during XSLT extension element evaluation")
240
+ context._exc._store_raised()
241
+ finally:
242
+ return # swallow any further exceptions
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: lxml
3
+ Version: 6.0.0
4
+ Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
5
+ Home-page: https://lxml.de/
6
+ Author: lxml dev team
7
+ Author-email: lxml@lxml.de
8
+ Maintainer: lxml dev team
9
+ Maintainer-email: lxml@lxml.de
10
+ License: BSD-3-Clause
11
+ Project-URL: Source, https://github.com/lxml/lxml
12
+ Project-URL: Bug Tracker, https://bugs.launchpad.net/lxml
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Information Technology
16
+ Classifier: License :: OSI Approved :: BSD License
17
+ Classifier: Programming Language :: Cython
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: C
26
+ Classifier: Operating System :: OS Independent
27
+ Classifier: Topic :: Text Processing :: Markup :: HTML
28
+ Classifier: Topic :: Text Processing :: Markup :: XML
29
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
+ Requires-Python: >=3.8
31
+ License-File: LICENSE.txt
32
+ License-File: LICENSES.txt
33
+ Provides-Extra: source
34
+ Provides-Extra: cssselect
35
+ Requires-Dist: cssselect>=0.7; extra == "cssselect"
36
+ Provides-Extra: html5
37
+ Requires-Dist: html5lib; extra == "html5"
38
+ Provides-Extra: htmlsoup
39
+ Requires-Dist: BeautifulSoup4; extra == "htmlsoup"
40
+ Provides-Extra: html-clean
41
+ Requires-Dist: lxml_html_clean; extra == "html-clean"
42
+ Dynamic: author
43
+ Dynamic: author-email
44
+ Dynamic: classifier
45
+ Dynamic: description
46
+ Dynamic: home-page
47
+ Dynamic: license
48
+ Dynamic: license-file
49
+ Dynamic: maintainer
50
+ Dynamic: maintainer-email
51
+ Dynamic: project-url
52
+ Dynamic: provides-extra
53
+ Dynamic: requires-python
54
+ Dynamic: summary
55
+
56
+ lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.
57
+ It provides safe and convenient access to these libraries using the
58
+ ElementTree API.
59
+
60
+ It extends the ElementTree API significantly to offer support for XPath,
61
+ RelaxNG, XML Schema, XSLT, C14N and much more.
62
+
63
+ To contact the project, go to the `project home page <https://lxml.de/>`_
64
+ or see our bug tracker at https://launchpad.net/lxml
65
+
66
+ In case you want to use the current in-development version of lxml,
67
+ you can get it from the github repository at
68
+ https://github.com/lxml/lxml . Note that this requires Cython to
69
+ build the sources, see the build instructions on the project home page.
70
+
71
+
72
+ After an official release of a new stable series, bug fixes may become available at
73
+ https://github.com/lxml/lxml/tree/lxml-6.0 .
74
+ Running ``pip install https://github.com/lxml/lxml/archive/refs/heads/lxml-6.0.tar.gz``
75
+ will install the unreleased branch state as soon as a maintenance branch has been established.
76
+ Note that this requires Cython to be installed at an appropriate version for the build.
77
+
78
+ 6.0.0 (2025-06-26)
79
+ ==================
80
+
81
+ Features added
82
+ --------------
83
+
84
+ * GH#463: ``lxml.html.diff`` is faster and provides structurally better diffs.
85
+ Original patch by Steven Fernandez.
86
+
87
+ * GH#405: The factories ``Element`` and ``ElementTree`` can now be used in type hints.
88
+
89
+ * GH#448: Parsing from ``memoryview`` and other buffers is supported to allow zero-copy parsing.
90
+
91
+ * GH#437: ``lxml.html.builder`` was missing several HTML5 tag names.
92
+ Patch by Nick Tarleton.
93
+
94
+ * GH#458: ``CDATA`` can now be written into the incremental ``xmlfile()`` writer.
95
+ Original patch by Lane Shaw.
96
+
97
+ * A new parser option ``decompress=False`` was added that controls the automatic
98
+ input decompression when using libxml2 2.15.0 or later. Disabling this option
99
+ by default will effectively prevent decompression bombs when handling untrusted
100
+ input. Code that depends on automatic decompression must enable this option.
101
+ Note that libxml2 2.15.0 was not released yet, so this option currently has no
102
+ effect but can already be used.
103
+
104
+ * The set of compile time / runtime supported libxml2 feature names is available as
105
+ ``etree.LIBXML_COMPILED_FEATURES`` and ``etree.LIBXML_FEATURES``.
106
+ This currently includes
107
+ ``catalog``, ``ftp``, ``html``, ``http``, ``iconv``, ``icu``,
108
+ ``lzma``, ``regexp``, ``schematron``, ``xmlschema``, ``xpath``, ``zlib``.
109
+
110
+ Bugs fixed
111
+ ----------
112
+
113
+ * GH#353: Predicates in ``.find*()`` could mishandle tag indices if a default namespace is provided.
114
+ Original patch by Luise K.
115
+
116
+ * GH#272: The ``head`` and ``body`` properties of ``lxml.html`` elements failed if no such element
117
+ was found. They now return ``None`` instead.
118
+ Original patch by FVolral.
119
+
120
+ * Tag names provided by code (API, not data) that are longer than ``INT_MAX``
121
+ could be truncated or mishandled in other ways.
122
+
123
+ * ``.text_content()`` on ``lxml.html`` elements accidentally returned a "smart string"
124
+ without additional information. It now returns a plain string.
125
+
126
+ * LP#2109931: When building lxml with coverage reporting, it now disables the ``sys.monitoring``
127
+ support due to the lack of support in https://github.com/nedbat/coveragepy/issues/1790
128
+
129
+ Other changes
130
+ -------------
131
+
132
+ * Support for Python < 3.8 was removed.
133
+
134
+ * Parsing directly from zlib (or lzma) compressed data is now considered an optional
135
+ feature in lxml. It may get removed from libxml2 at some point for security reasons
136
+ (compression bombs) and is therefore no longer guaranteed to be available in lxml.
137
+
138
+ As of this release, zlib support is still normally available in the binary wheels
139
+ but may get disabled or removed in later (x.y.0) releases. To test the availability,
140
+ use ``"zlib" in etree.LIBXML_FEATURES``.
141
+
142
+ * The ``Schematron`` class is deprecated and will become non-functional in a future lxml version.
143
+ The feature will soon be removed from libxml2 and stop being available.
144
+
145
+ * GH#438: Wheels include the ``arm7l`` target.
146
+
147
+ * GH#465: Windows wheels include the ``arm64`` target.
148
+ Patch by Finn Womack.
149
+
150
+ * Binary wheels use the library versions libxml2 2.14.4 and libxslt 1.1.43.
151
+ Note that this disables direct HTTP and FTP support for parsing from URLs.
152
+ Use Python URL request tools instead (which usually also support HTTPS).
153
+ To test the availability, use ``"http" in etree.LIBXML_FEATURES``.
154
+
155
+ * Windows binary wheels use the library versions libxml2 2.11.9, libxslt 1.1.39 and libiconv 1.17.
156
+ They are now based on VS-2022.
157
+
158
+ * Built using Cython 3.1.2.
159
+
160
+ * The debug methods ``MemDebug.dump()`` and ``MemDebug.show()`` were removed completely.
161
+ libxml2 2.13.0 discarded this feature.
162
+
163
+
@@ -0,0 +1,177 @@
1
+ lxml/ElementInclude.py,sha256=pEvLKSyhNWtZTRr6liUJD-1mIqmbxbcurxcqZv7vNHg,8804
2
+ lxml/__init__.py,sha256=vjSKhgde8rQYlZy8A4qikKQVqZgCm78PvHqcA8OOnSM,596
3
+ lxml/_elementpath.cp311-win_arm64.pyd,sha256=ev5E4BV4uYti2v1LmyFXn7Rx3xBY37Hxl9pYwAA3aNM,154112
4
+ lxml/_elementpath.py,sha256=mphn7HDGhJyfqIXhWLELWIVxf9wC5udI1H53KqkRgAk,11302
5
+ lxml/apihelpers.pxi,sha256=IG8UL8pWMa5sJtgdcdwLcxMv2xYz2Es6HGcBhc0Jq8g,65682
6
+ lxml/builder.cp311-win_arm64.pyd,sha256=1Ay55kMv9eEPvRYMExuIUqSeDsLerbeD8LsB5tsympc,92672
7
+ lxml/builder.py,sha256=zq0o6ZtT5OrV2NQ_TqXz8eolBZ-1qAJYBtTKMO1Duu8,8728
8
+ lxml/classlookup.pxi,sha256=rRtWHz9AajMqkm7RiG_PkOCsaQTRkgK757pRj3RvCxA,23015
9
+ lxml/cleanup.pxi,sha256=Zll_xQcmMBkUQtkWugiJ7TDQWPR0IHKjD5OesmQ0dB8,8669
10
+ lxml/cssselect.py,sha256=ur77NVsTk24-t_1AFo5EjfEqyheuw01BRG-_Ob5DDQY,3407
11
+ lxml/debug.pxi,sha256=qton7wZ25ha0KnuCEPrEvcPoww72yIYac4uCwGqSEWM,1161
12
+ lxml/docloader.pxi,sha256=tP6b_zZ5s0-Zj2kf2mFksI8U5whArwOVDOVuaZcbgtM,5950
13
+ lxml/doctestcompare.py,sha256=1r23O3Ki1BypqzkVWh97FEdRq-ENvmFEWuABOWdE0Lo,18219
14
+ lxml/dtd.pxi,sha256=hO4U0Ql3xzpqtV8XDZXkJncNEbb_ML8QkaYL8SBDTD0,15760
15
+ lxml/etree.cp311-win_arm64.pyd,sha256=-6l5pLEq6Ze1a3aimX93oIZwmnVS9-aHYsCB39i7OvU,3930112
16
+ lxml/etree.h,sha256=ZwSty1M1Nzhx0jvNOINUA5yCnnKv-wvzxPitsYQ6FZw,10036
17
+ lxml/etree.pyx,sha256=JyXwuM8s_Eobs8jUPpwNUS13l_y7T9aT8ItqZ708Ap0,141867
18
+ lxml/etree_api.h,sha256=_Jlnm1UpjFHvvAbl1xi65GeABj2Tfo8eVJkG4an1b3s,17576
19
+ lxml/extensions.pxi,sha256=zxV_5xs3RXOzU8TbGsklZxJaoeqI5Jk_0MX9-de319Y,32852
20
+ lxml/iterparse.pxi,sha256=Nd26kE2NVAg2_eyhlBVleWH69rdXK6dZkR4AgpkDsys,16959
21
+ lxml/lxml.etree.h,sha256=ZwSty1M1Nzhx0jvNOINUA5yCnnKv-wvzxPitsYQ6FZw,10036
22
+ lxml/lxml.etree_api.h,sha256=vYwK-SVatk3bE1hJfxQnIO_VzQKn4711JNUHJZOgl5E,17581
23
+ lxml/nsclasses.pxi,sha256=9TiZjPbP73H8VN0Xu1RmuRB7G-D0pTTSqLPbdTJQt5U,9410
24
+ lxml/objectify.cp311-win_arm64.pyd,sha256=cR1OU7R4AYpUwHTzYaPQ-jGsdwAJR-iKb2CRiqGl21o,1722368
25
+ lxml/objectify.pyx,sha256=AcFYhuhFZjEzLhjF5SjINLxgD2YcC-fCKSgeixSAGAs,77972
26
+ lxml/objectpath.pxi,sha256=og7LX-a88RrgJI3lUAtuJ8Hvx4RpNf57k7pmafzCuCA,11782
27
+ lxml/parser.pxi,sha256=T10fH8f6CEZL91s7Uz0eGMJDEfLZ8F5GIdEGzvlWBwI,86847
28
+ lxml/parsertarget.pxi,sha256=0gZ5eLJ2hQ8tSApFEQx1PfzaiPqRuaRxD_GwKODIzEc,6506
29
+ lxml/proxy.pxi,sha256=phoeHZwmrN6LF3W57V5J-72ZPhGxdpI0TxgzVlD5pyU,24316
30
+ lxml/public-api.pxi,sha256=NT9BUTPhf0ZxLKm61xKT4SVmWxbb5aImmNIeTJdXNRs,6844
31
+ lxml/pyclasslookup.py,sha256=jDGYrbxuKE3Hl07PbILX_ptLkQaXYrpJSgvil4hIs3s,95
32
+ lxml/readonlytree.pxi,sha256=W3RXFM2aUGM8ZswTBP5EUW-wT1n6x7fpEGloQQa5cPE,19541
33
+ lxml/relaxng.pxi,sha256=rjTfl-rBYlHqQv4nfxVK8KZR59KqKWQp9lZv3aKYXVk,6504
34
+ lxml/sax.cp311-win_arm64.pyd,sha256=EsaqEziJ6Ujq44HGE8uoG5CqX_Pm1lvnWR0YFfo28qw,134144
35
+ lxml/sax.py,sha256=yq72BKeO59j8ex3Wd-Nu-FBXmyqGSXJwfTj8F6ZeoXU,9991
36
+ lxml/saxparser.pxi,sha256=MwBoXK30lySZVoM6LIWd2JyhPIW74a68Em35qJvn04Y,34404
37
+ lxml/schematron.pxi,sha256=FF22Q0KoJuX2Qcb26rL1YO9QpFTnmqRSS6k8R_G5j28,6237
38
+ lxml/serializer.pxi,sha256=BolXyyQquQEMJIG-LsFNtc_cckGHK_txvzRt30N5i5o,69912
39
+ lxml/usedoctest.py,sha256=cn3rXeL3F-ISj-HXNL9g4EwciH60b9NcZjXIRAF31iM,243
40
+ lxml/xinclude.pxi,sha256=DTre_KYISt1rzbf_qS75ix-ZbruSBnefIfNs4AqvF-M,2523
41
+ lxml/xmlerror.pxi,sha256=VFEO6Tn2RMVjKF9SXE15piak23lMaNrvE2pqT0hxfFw,51508
42
+ lxml/xmlid.pxi,sha256=Ng7Wifv0XXknjPMO6kldgrOHfCsII46UBPCkUTk96Qk,6252
43
+ lxml/xmlschema.pxi,sha256=sJumEEbkuR-vj2vDAE8vDvbjBhgzt_LRX-IwQRFgLTU,8705
44
+ lxml/xpath.pxi,sha256=iT1S7CBo2dBn19y926ktwPgAKGRC5WFnRgrncA6GwpM,19619
45
+ lxml/xslt.pxi,sha256=YqZ4otfou0aEFQdCRM6q9XF5o4bOHw3Lk5yC_m3MpZc,37272
46
+ lxml/xsltext.pxi,sha256=syKkmI6GMwE_f-XPYC8rGFXJ5F9KeQigxz52CsbF4PA,11330
47
+ lxml/html/ElementSoup.py,sha256=dQSpzuzUT3LKCGh71H4rccB5RCwoMpyayRY-qbtWBM0,330
48
+ lxml/html/__init__.py,sha256=zQZwgKH8c_QBYFXzuq8S-KugBFLqLFt7vQAOseHRIRo,66352
49
+ lxml/html/_diffcommand.py,sha256=MfccaYAAKCtzCRe_MCXihC3vnuPUKiJbmOx85Dt37To,2167
50
+ lxml/html/_difflib.cp311-win_arm64.pyd,sha256=MzrGeCXhLdkbLIMsxibUUAjk71L99x4eL5FAtIU_sEw,411648
51
+ lxml/html/_difflib.py,sha256=rFGk4ObTaICAgduVo4TAJyVdicB6WuUXgjH3xpm0_iQ,87060
52
+ lxml/html/_html5builder.py,sha256=XfqNFDQ5HUOWTqubeOe1m5qmIut6I_3Egye75wer7tE,3330
53
+ lxml/html/_setmixin.py,sha256=6cUyIeiMIn5zUytcWHsdWZXyMJXVsfJVVQoAIIe9h7Q,1244
54
+ lxml/html/builder.py,sha256=q-BZ14j-sqSXL_F1nQnzxB1zBhCdR3aJ7F--LxGMYhY,6360
55
+ lxml/html/clean.py,sha256=B_rsm3Mz7pn_Z8LnkXeSocL257--sqWJGaxBp2LlmB8,524
56
+ lxml/html/defs.py,sha256=2H4v1QZnfFcf6oa9sDq8hl-sJQpqwq7VE-VknKIb854,4385
57
+ lxml/html/diff.cp311-win_arm64.pyd,sha256=l4NvD07h2Nj1pXBT2rtS54sjG6c8qzZmYZsDSb1fM00,256512
58
+ lxml/html/diff.py,sha256=7Rah6HTCeWcRIH_aIzTwXf5WII1cxPiQ1fdIjewl5cI,33961
59
+ lxml/html/formfill.py,sha256=8yXFIO4DNVY-HG8q4O4OtxIQ8qmLpXYQ8T1rFUTkK8c,9980
60
+ lxml/html/html5parser.py,sha256=iupCVDO_6I1PNWstkE6omdDh-rEc0KMaIXo1OCP9noM,8894
61
+ lxml/html/soupparser.py,sha256=fQ_ZjWcXwKTrbPD8lsPe9YNPsQmk2o9zCd1fJGFX0zY,10511
62
+ lxml/html/usedoctest.py,sha256=eP0SnLLZFfYHNIegfLWPeBqO-4yyKKjStjtUAUGJN6w,262
63
+ lxml/includes/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ lxml/includes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ lxml/includes/c14n.pxd,sha256=sO2g4HgndNGlhsSmMI767T8KfZcNtjpFilzZ3OD4eqU,1135
66
+ lxml/includes/config.pxd,sha256=ECKwhEax5IW2KFn1BQdwR2M0FbWciVRFMJW7pHxJSqI,99
67
+ lxml/includes/dtdvalid.pxd,sha256=VOt94bqe417bxvfkfbtbsd5kVnwQj4oYSHMfnV2pcsM,707
68
+ lxml/includes/etree_defs.h,sha256=AFSLdqAdrcZ58FT2ba8xGLj-Eod_epF646KNGJjn5fU,14603
69
+ lxml/includes/etreepublic.pxd,sha256=s2HRJSuZhwlDi3oHsSBPChA4dgTnWjWWMzBb3VxrtJw,10421
70
+ lxml/includes/htmlparser.pxd,sha256=UEV2wIp8RHekwUAcPWMQe8KBfEv39u0c3LHOsdvRr0k,2858
71
+ lxml/includes/lxml-version.h,sha256=iOrzpY1hJfHYzFK_qTTAxnHVnvzCJP9Du_KnuIs8QoI,74
72
+ lxml/includes/relaxng.pxd,sha256=H5W5XObI5YtRpULeiRy6K6ldUZC0tDQauAFZ7PJSqE4,2679
73
+ lxml/includes/schematron.pxd,sha256=JmKDG9ElNPXJ7rZzOpQjPaIdzIZ1pzMEOT_GjZRK98U,1638
74
+ lxml/includes/tree.pxd,sha256=4_ttQTighQJiPxt3Fa9FJ8-BhxMtZHVw4DPrdaZ6kKE,20671
75
+ lxml/includes/uri.pxd,sha256=UbTG4fvHaq6jkNkwLyx6aMbbCCXGDmrE3KjPirCtW30,150
76
+ lxml/includes/xinclude.pxd,sha256=n3SdzxwdcwJxeX8TQIRZ_6ozABwg6mrMEOXDFzs5f50,826
77
+ lxml/includes/xmlerror.pxd,sha256=cVZruvjdntAoE8jy2XFxSG1l6kvsY8u9BK2MkE8GFLs,58868
78
+ lxml/includes/xmlparser.pxd,sha256=lZhgz45V_j5YSSh4CxjxuMdTZKVIuWa7BVm03hdTqoY,12797
79
+ lxml/includes/xmlschema.pxd,sha256=q6cHPJpi3uhkf2MLUUd2h3nCDB_4a1B8cei8aTHbN84,1737
80
+ lxml/includes/xpath.pxd,sha256=LsDoWjO5xJUB-z0_BdsItEWHhLgLpX40IdNmbYzpdv4,5739
81
+ lxml/includes/xslt.pxd,sha256=GM_Hkk7vGnWMlWlLM9YCpkUeGgWk8Lvmr1KUy5kbZ-4,8431
82
+ lxml/includes/extlibs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ lxml/includes/extlibs/zconf.h,sha256=mzNGi-0o_nxNbownE4bGAiU0E1zkJB-O3SezPUEprCI,17043
84
+ lxml/includes/extlibs/zlib.h,sha256=iO_DwdWubbhw14FW91xs9ITbicLsGUbUwnFpHXrxcZU,98767
85
+ lxml/includes/libexslt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ lxml/includes/libexslt/exslt.h,sha256=KxVX0CeCh0MpfTcGSr3f58MiJjx3GsJIC5Mvzrxn5Rg,3222
87
+ lxml/includes/libexslt/exsltconfig.h,sha256=ErNzH5xEZ2GFluiT7m3sdqlL-MFZPpjvXC7KLRjSGpQ,1242
88
+ lxml/includes/libexslt/exsltexports.h,sha256=_lddLoUjOXa172aAYSFfQXkp8xv8Q2WZxkKAT64Ev7g,1140
89
+ lxml/includes/libexslt/libexslt.h,sha256=h5Y5ny1LzW297MMCfRX-wnfQG0fTXqkTCp255GQNPj0,679
90
+ lxml/includes/libxml/HTMLparser.h,sha256=5OM28DqXmI6L3mmSx6k4khVuKZrm-EbXmhY0f4XW-mA,9809
91
+ lxml/includes/libxml/HTMLtree.h,sha256=LftyEurOqreJZt4B5GK2pqvY_bY2ub4TUjCfcchPFaw,3649
92
+ lxml/includes/libxml/SAX.h,sha256=mr-5to3NiHgQAlE4G4W4N_ht4I_nTvtAYTGpRMu_77M,4661
93
+ lxml/includes/libxml/SAX2.h,sha256=HZpRkyyFRHq5ZLDlPwNB4MGWUfWwkTE_Tl1oT8e6QPc,4642
94
+ lxml/includes/libxml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
+ lxml/includes/libxml/c14n.h,sha256=s1cBw7nxLGlHr6yzCu_PLJTYvRfoklqCGLVb417GoiI,3213
96
+ lxml/includes/libxml/catalog.h,sha256=se6ihXDRMywC8crnX-JJ0vzgSSx3QbbBAbtZQbJRF1E,4800
97
+ lxml/includes/libxml/chvalid.h,sha256=EoJ333bExUTlA_uGQOe8qOnJyaLbcnQRHrkMf6fjKLg,5317
98
+ lxml/includes/libxml/debugXML.h,sha256=s5raCA9NLszcprZsButf--5JyTSoCFfX692IRsQ6uLU,5145
99
+ lxml/includes/libxml/dict.h,sha256=PhOIy6vHQ-xnKVAjq2isoFRqI889TCK1rY2QqA_d368,1821
100
+ lxml/includes/libxml/encoding.h,sha256=D0Bqw8d4Mgdp4lXaLWR9En0ddf8mXpyJ4GoMZw0m0f8,8142
101
+ lxml/includes/libxml/entities.h,sha256=h0Omy2DQ7bEEH4NYrW1i9hSpnzp44wNgafkk84ZYt_c,4701
102
+ lxml/includes/libxml/globals.h,sha256=r-QvCDlV-JS2aAyg-fXpXgTojOFHUq5JXxK55myXDdQ,14931
103
+ lxml/includes/libxml/hash.h,sha256=ocPVGr9GVFZiTiFhyfpXYWMtB1SGhisZIrkzL9LiJz0,6637
104
+ lxml/includes/libxml/list.h,sha256=67XDm5W0TNjyE9OnXd6Is2-Yy0_449Z6RpB9wnQV7IU,3277
105
+ lxml/includes/libxml/nanoftp.h,sha256=1jalOwOgke6kV8aeZPc9WxZnGwvKVXQ8eZZ-ZwDrzMI,4150
106
+ lxml/includes/libxml/nanohttp.h,sha256=wu425iErZ1xR3HbQyMZR2Eg9kpO8MFEk_Cx07AS0FlE,1950
107
+ lxml/includes/libxml/parser.h,sha256=p49DU9gzUrmNie1yZOPANhCsQEhtHnYTLg5NbBIMS6s,40871
108
+ lxml/includes/libxml/parserInternals.h,sha256=6NQSnQDVzr1XznNRGoplwER_HtTuKK_C2Ro44v6D8AE,17241
109
+ lxml/includes/libxml/pattern.h,sha256=jIudTB3owWWdT-7qrb438-wtubZSK42SvJdHTn5JWFY,2566
110
+ lxml/includes/libxml/relaxng.h,sha256=kaua77JEbe5ME4J050VBjCIzHn9zWRGc8sF-M6bhjIc,6019
111
+ lxml/includes/libxml/schemasInternals.h,sha256=lqk2rUS2tsBd7tomThyyKXQIgS7_PXV44VpeFGe4bZg,27166
112
+ lxml/includes/libxml/schematron.h,sha256=HvC46w3UA2RDqWsRyMOIOOqwVvxDPtXldh-QZMr2CpY,4368
113
+ lxml/includes/libxml/threads.h,sha256=zy4K-2uwaGVLoZIl1uGMnRZpW5JMm9wXSizhyribwhc,1969
114
+ lxml/includes/libxml/tree.h,sha256=fre4cjgWR17stTPeNcUU3zlgmQezlHxnVgNwhGADCo0,38200
115
+ lxml/includes/libxml/uri.h,sha256=O0k1yros9uPC6isZ-Txwz5MAStOcad78ry_26ZmRvB0,2638
116
+ lxml/includes/libxml/valid.h,sha256=l0sOgDDIexRXc5mAnYl6ft2eEMSih23uo0Mmd05tHhM,13229
117
+ lxml/includes/libxml/xinclude.h,sha256=1u5xjjL67l_d_AXjGmuGCz1ZdP9oHesGmYx8OO-cJQs,3016
118
+ lxml/includes/libxml/xlink.h,sha256=TC-rXTWm0KF6G8Ey9BixzcekaYHpyEcKaXwdKT9aK_I,5191
119
+ lxml/includes/libxml/xmlIO.h,sha256=bztkE3NwGsYXhRjIZIkaA1ePtz0HbpwJwyTxVlTpmNg,10572
120
+ lxml/includes/libxml/xmlautomata.h,sha256=urpN6NMU6e7uLth7qZV-5WxT9MuCE6jwhQni7p8OEVY,3933
121
+ lxml/includes/libxml/xmlerror.h,sha256=qk2j-7CIkGMVrXJif3EADFb9TmtCRq_8NXAEDb2QKrk,37020
122
+ lxml/includes/libxml/xmlexports.h,sha256=GL37xMLc2uhXfvkWWrt5uIvSkxRvmr9XpHRvkWynp3s,1042
123
+ lxml/includes/libxml/xmlmemory.h,sha256=gKMVgPLk16j3sEbYO__tjJ-Kh0opn5XYtqigcG4RZ4k,6053
124
+ lxml/includes/libxml/xmlmodule.h,sha256=I5cuHClvL8Iz3iBxAX8e84yagpGGCDuSYoUQqZ2WqIU,1195
125
+ lxml/includes/libxml/xmlreader.h,sha256=XKS9vP0ydJIZeI7KO6xQTgjmG_xgYDayC5pMP9nmFKA,12339
126
+ lxml/includes/libxml/xmlregexp.h,sha256=hcM2ksyoT0iPqUZZMUMRZoRS1WuxtPsi68r1dBgadqY,5440
127
+ lxml/includes/libxml/xmlsave.h,sha256=hmnMQ3JqAM58Jz-sOSDS4FAT5CkfaQ8vJnRxWwZC-PQ,2345
128
+ lxml/includes/libxml/xmlschemas.h,sha256=bjBJmjocL7FFTuk492AIirX0jfQKHThHl6wMuk7E-oI,7071
129
+ lxml/includes/libxml/xmlschemastypes.h,sha256=Pj2xcKIJG7KOCJGGcYaJ_7IzJidT6tPeO0NCKksHCOk,4735
130
+ lxml/includes/libxml/xmlstring.h,sha256=1LTc15iy5slT-vh83YV8qoeXauXdzY8C_UqDb5TQ_7k,5411
131
+ lxml/includes/libxml/xmlunicode.h,sha256=pthMXVs3mfsWggKJDAJW9vDool6vakoEpLtCm65PQSk,8867
132
+ lxml/includes/libxml/xmlversion.h,sha256=DYJmx3Le2xLkPj9dRgf6FAU-L089JvinKi0s3zN59mQ,9833
133
+ lxml/includes/libxml/xmlwriter.h,sha256=6hMXHg7kXzFxQNWacviidOZT4CfhUXjPiVHkkvw5QYg,21113
134
+ lxml/includes/libxml/xpath.h,sha256=pIgW7Kl2J-0PWSbqCOB0nPRmMsCez2FxBgDptyaz-H0,16994
135
+ lxml/includes/libxml/xpathInternals.h,sha256=1Yd4MvL4U3wPwueqJisdZShzxUyyuF62OBazVQM09Ac,19049
136
+ lxml/includes/libxml/xpointer.h,sha256=Okpv5iwcg3oyD5pHiYitYPVuPn9372L4WbimO2-YL-0,3753
137
+ lxml/includes/libxslt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ lxml/includes/libxslt/attributes.h,sha256=CyXb4ZVnJVw7_0MHcHXPcNRkLAVDTTSu6zoLKZQDWmY,996
139
+ lxml/includes/libxslt/documents.h,sha256=6GUS9iIUS1p_5veDfF1Umx1xsHxNhTu3KnEVgBnNdqU,2797
140
+ lxml/includes/libxslt/extensions.h,sha256=iJxPhwKNqRfiIn3i3L8tKifC8uIBPn11t46q-j6XzBo,7161
141
+ lxml/includes/libxslt/extra.h,sha256=iOuhGjFLi0scm2ebgA07ER-FH1_6HmPeHfSghmXu5Xw,1712
142
+ lxml/includes/libxslt/functions.h,sha256=JK5nzaB8OrCCQlxBct6MMQp8K8c_Gd614Oq82fcGvaU,2050
143
+ lxml/includes/libxslt/imports.h,sha256=udGr3UW9dg3eEiddSDVWOUCvwljGyfM57RH2QgvZw1s,1915
144
+ lxml/includes/libxslt/keys.h,sha256=y3dY_lZ3kfYUB6Xw83ORnDoS68eJp0oGUEfDthYWtMI,1208
145
+ lxml/includes/libxslt/libxslt.h,sha256=QqaLpZIb4TcrGX0XIvKJQo04WjNZfh1Pe1lkw0biQEY,872
146
+ lxml/includes/libxslt/namespaces.h,sha256=k78ED1fUDe4G35uVhro5aqJ73aTfQ-xn45z-QkjZoWk,1734
147
+ lxml/includes/libxslt/numbersInternals.h,sha256=28Z_BOHCnJET76THaXsWkt_dR8K__YOIgdYvc4Q8_hA,2092
148
+ lxml/includes/libxslt/preproc.h,sha256=xhnTXIXM6CNIP4SsXJq9zrqqYOY4rnrDUny4jWvVt6g,939
149
+ lxml/includes/libxslt/security.h,sha256=1aSHQYnDTqlYB73RAobqfcLWsmCCRb52F_yHmyNcDZ0,2756
150
+ lxml/includes/libxslt/templates.h,sha256=CMZbbisqWm9ymU-HRp2hja0M2qwxiAgVjwBjZSF4BCc,2345
151
+ lxml/includes/libxslt/transform.h,sha256=DiUJicoml0QxgdbXCerCnKQuyben6PiCy6VG9nQrhso,6518
152
+ lxml/includes/libxslt/trio.h,sha256=kn-98NsJU9_hQ8I8l2-n8J5LmWH_0K0klXHR3hKtc0o,7415
153
+ lxml/includes/libxslt/triodef.h,sha256=XgbUXOc4472RCcmHqh-NMgMMLcykrubuI-9rNEkf3Jo,6912
154
+ lxml/includes/libxslt/variables.h,sha256=7cL1EOpzphzZJD39Qn9enHZzakeyEw7Hfz9n1IeQ0cY,3261
155
+ lxml/includes/libxslt/win32config.h,sha256=mJY4lc-u7nLtqHeIHFnJwpPbiNjkN7GZobaZjDmdCx0,1164
156
+ lxml/includes/libxslt/xslt.h,sha256=j6nZHxyY3U505GbtO_aeLMrJ9xE2uux45XOlyT0oeYY,2074
157
+ lxml/includes/libxslt/xsltInternals.h,sha256=RtgEYBm8nLxBrLpV0AEb7j2xKIV9SzaWeL28uPhY3zI,59886
158
+ lxml/includes/libxslt/xsltconfig.h,sha256=xIsNA5sg1jT91U7MDQFvMSYhpY5LenQ9lMbQoecw1vA,3819
159
+ lxml/includes/libxslt/xsltexports.h,sha256=GdcJL2oHi344GornuG2iAT27yqI48L9eim0ScAj9ywg,1188
160
+ lxml/includes/libxslt/xsltlocale.h,sha256=uAGe_73hvCZP5mDvHCHgcMvbdJ7FbHHSzCDInfuDub8,986
161
+ lxml/includes/libxslt/xsltutils.h,sha256=KD208ptsQHrHB1Du4biZU2iZM0Yb6M7c2SPJtjo46JE,9428
162
+ lxml/isoschematron/__init__.py,sha256=Ci8JiaKxfvu-hMRh7IP27TFhM03iEQ8CJoNsdXjLoM8,13622
163
+ lxml/isoschematron/resources/rng/iso-schematron.rng,sha256=cCM4qpfuTYAVtukjxlobPMlJ8nZ-au7DgONS2g4rYO4,19046
164
+ lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl,sha256=gy-E6xR2p35SK9wXFThraPJEI9NdoITNHd4xmqy7oxY,3247
165
+ lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl,sha256=QweRrIIM-zFcgg98GXA2CaWfIbgVE0XKEeYSfvv67A0,4563
166
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl,sha256=SSUZkAkWhFYG_YNHvW9UU6X8tmMOH1vdpRmzqu0l4QM,12015
167
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl,sha256=ZZ-d72rxQlACfrs4EmaDYxaRbxd0gPa-DPLRlVV6QRg,41116
168
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl,sha256=NQal4z3EuZ_5QVoMFbJqma2SKg4-hzm_Db283-0l0kU,2069
169
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl,sha256=Vo1F576odRkdLBmuEEWrLa5LF3SMTX9B6EEGnxUbv_8,73560
170
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl,sha256=UI7xHx0leNXS9BaU6cyQ4CHeflufKmAE-zjOrihuH-E,20970
171
+ lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt,sha256=OGLiFswuLJEW5EPYKOeoauuCJFEtVa6jyzBE1OcJI98,3310
172
+ lxml-6.0.0.dist-info/licenses/LICENSE.txt,sha256=58POjXYzGwEBzEZ5CrQ5WOqQo2S8-WLth2PVqBg0Dmk,1538
173
+ lxml-6.0.0.dist-info/licenses/LICENSES.txt,sha256=zlP1CNDLiL20Yh4jbKNIgaP6GAX5ffzPOJYBKKTi6tk,1543
174
+ lxml-6.0.0.dist-info/METADATA,sha256=hGQG-HMRebKqkP9TXua_8Ag5JCj71JCZcQ2RuZtKRZk,6763
175
+ lxml-6.0.0.dist-info/WHEEL,sha256=_6dVEvfjMkp6KZZXihi2C2UP-ewiZXAMezDMkPqYmGo,101
176
+ lxml-6.0.0.dist-info/top_level.txt,sha256=NjD988wqaKq512nshNdLt-uDxsjkp4Bh51m6N-dhUrk,5
177
+ lxml-6.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp311-cp311-win_arm64
5
+
@@ -0,0 +1,31 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2004 Infrae. All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are
7
+ met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright
10
+ notice, this list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright
13
+ notice, this list of conditions and the following disclaimer in
14
+ the documentation and/or other materials provided with the
15
+ distribution.
16
+
17
+ 3. Neither the name of Infrae nor the names of its contributors may
18
+ be used to endorse or promote products derived from this software
19
+ without specific prior written permission.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INFRAE OR
25
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,29 @@
1
+ lxml is copyright Infrae and distributed under the BSD license (see
2
+ doc/licenses/BSD.txt), with the following exceptions:
3
+
4
+ Some code, such a selftest.py, selftest2.py and
5
+ src/lxml/_elementpath.py are derived from ElementTree and
6
+ cElementTree. See doc/licenses/elementtree.txt for the license text.
7
+
8
+ lxml.cssselect and lxml.html are copyright Ian Bicking and distributed
9
+ under the BSD license (see doc/licenses/BSD.txt).
10
+
11
+ test.py, the test-runner script, is GPL and copyright Shuttleworth
12
+ Foundation. See doc/licenses/GPL.txt. It is believed the unchanged
13
+ inclusion of test.py to run the unit test suite falls under the
14
+ "aggregation" clause of the GPL and thus does not affect the license
15
+ of the rest of the package.
16
+
17
+ The isoschematron implementation uses several XSL and RelaxNG resources:
18
+ * The (XML syntax) RelaxNG schema for schematron, copyright International
19
+ Organization for Standardization (see
20
+ src/lxml/isoschematron/resources/rng/iso-schematron.rng for the license
21
+ text)
22
+ * The skeleton iso-schematron-xlt1 pure-xslt schematron implementation
23
+ xsl stylesheets, copyright Rick Jelliffe and Academia Sinica Computing
24
+ Center, Taiwan (see the xsl files here for the license text:
25
+ src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/)
26
+ * The xsd/rng schema schematron extraction xsl transformations are unlicensed
27
+ and copyright the respective authors as noted (see
28
+ src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl and
29
+ src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl)
@@ -0,0 +1 @@
1
+ lxml