/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
lxml
/
/opt/cloudlinux/venv/lib/python3.11/site-packages/lxml
mkdir
upload
Name
Size
Mode
Actions
html/
-
0755
rm
includes/
-
0755
rm
isoschematron/
-
0755
rm
__pycache__/
-
0755
rm
apihelpers.pxi
64452
0644
edit
dl
rm
builder.cpython-311-x86_64-linux-gnu.so
123624
0755
edit
dl
rm
builder.py
8147
0644
edit
dl
rm
classlookup.pxi
22462
0644
edit
dl
rm
cleanup.pxi
8458
0644
edit
dl
rm
cssselect.py
3366
0644
edit
dl
rm
debug.pxi
3283
0644
edit
dl
rm
docloader.pxi
5783
0644
edit
dl
rm
doctestcompare.py
18339
0644
edit
dl
rm
dtd.pxi
15219
0644
edit
dl
rm
ElementInclude.py
8560
0644
edit
dl
rm
etree.cpython-311-x86_64-linux-gnu.so
5797240
0755
edit
dl
rm
etree.h
8575
0644
edit
dl
rm
etree.pyx
132415
0644
edit
dl
rm
etree_api.h
17467
0644
edit
dl
rm
extensions.pxi
33241
0644
edit
dl
rm
iterparse.pxi
16607
0644
edit
dl
rm
lxml.etree.h
8575
0644
edit
dl
rm
lxml.etree_api.h
17472
0644
edit
dl
rm
nsclasses.pxi
9145
0644
edit
dl
rm
objectify.cpython-311-x86_64-linux-gnu.so
3351520
0755
edit
dl
rm
objectify.pyx
77100
0644
edit
dl
rm
objectpath.pxi
11479
0644
edit
dl
rm
parser.pxi
78247
0644
edit
dl
rm
parsertarget.pxi
6859
0644
edit
dl
rm
proxy.pxi
23562
0644
edit
dl
rm
public-api.pxi
6660
0644
edit
dl
rm
pyclasslookup.py
92
0644
edit
dl
rm
readonlytree.pxi
19048
0644
edit
dl
rm
relaxng.pxi
6085
0644
edit
dl
rm
sax.cpython-311-x86_64-linux-gnu.so
201680
0755
edit
dl
rm
sax.py
9396
0644
edit
dl
rm
saxparser.pxi
32542
0644
edit
dl
rm
schematron.pxi
5782
0644
edit
dl
rm
serializer.pxi
67999
0644
edit
dl
rm
usedoctest.py
230
0644
edit
dl
rm
xinclude.pxi
2460
0644
edit
dl
rm
xmlerror.pxi
49531
0644
edit
dl
rm
xmlid.pxi
6064
0644
edit
dl
rm
xmlschema.pxi
8079
0644
edit
dl
rm
xpath.pxi
19571
0644
edit
dl
rm
xslt.pxi
36694
0644
edit
dl
rm
xsltext.pxi
11085
0644
edit
dl
rm
_elementpath.cpython-311-x86_64-linux-gnu.so
230680
0755
edit
dl
rm
_elementpath.py
10742
0644
edit
dl
rm
__init__.py
575
0644
edit
dl
rm
Edit:
/opt/cloudlinux/venv/lib/python3.11/site-packages/lxml/xmlid.pxi
(6064B)
cdef object _find_id_attributes def XMLID(text, parser=None, *, base_url=None): u"""XMLID(text, parser=None, base_url=None) Parse the text and return a tuple (root node, ID dictionary). The root node is the same as returned by the XML() function. The dictionary contains string-element pairs. The dictionary keys are the values of 'id' attributes. The elements referenced by the ID are stored as dictionary values. """ cdef dict dic global _find_id_attributes if _find_id_attributes is None: _find_id_attributes = XPath(u'//*[string(@id)]') # ElementTree compatible implementation: parse and look for 'id' attributes root = XML(text, parser, base_url=base_url) dic = {} for elem in _find_id_attributes(root): dic[elem.get(u'id')] = elem return root, dic def XMLDTDID(text, parser=None, *, base_url=None): u"""XMLDTDID(text, parser=None, base_url=None) Parse the text and return a tuple (root node, ID dictionary). The root node is the same as returned by the XML() function. The dictionary contains string-element pairs. The dictionary keys are the values of ID attributes as defined by the DTD. The elements referenced by the ID are stored as dictionary values. Note that you must not modify the XML tree if you use the ID dictionary. The results are undefined. """ cdef _Element root root = XML(text, parser, base_url=base_url) # xml:id spec compatible implementation: use DTD ID attributes from libxml2 if root._doc._c_doc.ids is NULL: return root, {} else: return root, _IDDict(root) def parseid(source, parser=None, *, base_url=None): u"""parseid(source, parser=None) Parses the source into a tuple containing an ElementTree object and an ID dictionary. If no parser is provided as second argument, the default parser is used. Note that you must not modify the XML tree if you use the ID dictionary. The results are undefined. """ cdef _Document doc doc = _parseDocument(source, parser, base_url) return _elementTreeFactory(doc, None), _IDDict(doc) cdef class _IDDict: u"""IDDict(self, etree) A dictionary-like proxy class that mapps ID attributes to elements. The dictionary must be instantiated with the root element of a parsed XML document, otherwise the behaviour is undefined. Elements and XML trees that were created or modified 'by hand' are not supported. """ cdef _Document _doc cdef object _keys cdef object _items def __cinit__(self, etree): cdef _Document doc doc = _documentOrRaise(etree) if doc._c_doc.ids is NULL: raise ValueError, u"No ID dictionary available." self._doc = doc self._keys = None self._items = None def copy(self): return _IDDict(self._doc) def __getitem__(self, id_name): cdef tree.xmlHashTable* c_ids cdef tree.xmlID* c_id cdef xmlAttr* c_attr c_ids = self._doc._c_doc.ids id_utf = _utf8(id_name) c_id = <tree.xmlID*>tree.xmlHashLookup(c_ids, _xcstr(id_utf)) if c_id is NULL: raise KeyError, u"key not found." c_attr = c_id.attr if c_attr is NULL or c_attr.parent is NULL: raise KeyError, u"ID attribute not found." return _elementFactory(self._doc, c_attr.parent) def get(self, id_name): return self[id_name] def __contains__(self, id_name): cdef tree.xmlID* c_id id_utf = _utf8(id_name) c_id = <tree.xmlID*>tree.xmlHashLookup( self._doc._c_doc.ids, _xcstr(id_utf)) return c_id is not NULL def has_key(self, id_name): return id_name in self def __repr__(self): return repr(dict(self)) def keys(self): if self._keys is None: self._keys = self._build_keys() return self._keys[:] def __iter__(self): if self._keys is None: self._keys = self._build_keys() return iter(self._keys) def iterkeys(self): return self def __len__(self): if self._keys is None: self._keys = self._build_keys() return len(self._keys) def items(self): if self._items is None: self._items = self._build_items() return self._items[:] def iteritems(self): if self._items is None: self._items = self._build_items() return iter(self._items) def values(self): cdef list values = [] if self._items is None: self._items = self._build_items() for item in self._items: value = python.PyTuple_GET_ITEM(item, 1) python.Py_INCREF(value) values.append(value) return values def itervalues(self): return iter(self.values()) cdef object _build_keys(self): keys = [] tree.xmlHashScan(<tree.xmlHashTable*>self._doc._c_doc.ids, <tree.xmlHashScanner>_collectIdHashKeys, <python.PyObject*>keys) return keys cdef object _build_items(self): items = [] context = (items, self._doc) tree.xmlHashScan(<tree.xmlHashTable*>self._doc._c_doc.ids, <tree.xmlHashScanner>_collectIdHashItemList, <python.PyObject*>context) return items cdef void _collectIdHashItemList(void* payload, void* context, xmlChar* name): # collect elements from ID attribute hash table cdef list lst c_id = <tree.xmlID*>payload if c_id is NULL or c_id.attr is NULL or c_id.attr.parent is NULL: return lst, doc = <tuple>context element = _elementFactory(doc, c_id.attr.parent) lst.append( (funicode(name), element) ) cdef void _collectIdHashKeys(void* payload, void* collect_list, xmlChar* name): c_id = <tree.xmlID*>payload if c_id is NULL or c_id.attr is NULL or c_id.attr.parent is NULL: return (<list>collect_list).append(funicode(name))
Save
cmd:
run