GRAYBYTE WORDPRESS FILE MANAGER8551

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/hc_python/lib/python3.12/site-packages/lxml/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/hc_python/lib/python3.12/site-packages/lxml//xmlid.pxi
cdef object _find_id_attributes

def XMLID(text, parser=None, *, base_url=None):
    """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('//*[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('id')] = elem
    return root, dic

def XMLDTDID(text, parser=None, *, base_url=None):
    """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):
    """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:
    """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, "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, "key not found."
        c_attr = c_id.attr
        if c_attr is NULL or c_attr.parent is NULL:
            raise KeyError, "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) noexcept:
    # 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) noexcept:
    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))

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 23 2025 08:31:29
root / root
0755
__pycache__
--
April 04 2025 08:00:21
root / root
0755
html
--
April 04 2025 08:00:21
root / root
0755
includes
--
April 04 2025 08:00:21
root / root
0755
isoschematron
--
April 04 2025 08:00:21
root / root
0755
ElementInclude.py
8.359 KB
April 04 2025 08:00:21
root / root
0644
__init__.py
0.561 KB
April 04 2025 08:00:21
root / root
0644
_elementpath.cpython-312-x86_64-linux-gnu.so
200.188 KB
April 04 2025 08:00:21
root / root
0755
_elementpath.py
10.633 KB
April 04 2025 08:00:21
root / root
0644
apihelpers.pxi
62.119 KB
April 04 2025 08:00:21
root / root
0644
builder.cpython-312-x86_64-linux-gnu.so
113.805 KB
April 04 2025 08:00:21
root / root
0755
builder.py
7.91 KB
April 04 2025 08:00:21
root / root
0644
classlookup.pxi
21.909 KB
April 04 2025 08:00:21
root / root
0644
cleanup.pxi
8.256 KB
April 04 2025 08:00:21
root / root
0644
cssselect.py
3.229 KB
April 04 2025 08:00:21
root / root
0644
debug.pxi
3.205 KB
April 04 2025 08:00:21
root / root
0644
docloader.pxi
5.637 KB
April 04 2025 08:00:21
root / root
0644
doctestcompare.py
17.315 KB
April 04 2025 08:00:21
root / root
0644
dtd.pxi
14.923 KB
April 04 2025 08:00:21
root / root
0644
etree.cpython-312-x86_64-linux-gnu.so
5.11 MB
April 04 2025 08:00:21
root / root
0755
etree.h
9.68 KB
April 04 2025 08:00:21
root / root
0644
etree.pyx
131.364 KB
April 04 2025 08:00:21
root / root
0644
etree_api.h
16.663 KB
April 04 2025 08:00:21
root / root
0644
extensions.pxi
31.336 KB
April 04 2025 08:00:21
root / root
0644
iterparse.pxi
16.134 KB
April 04 2025 08:00:21
root / root
0644
lxml.etree.h
9.68 KB
April 04 2025 08:00:21
root / root
0644
lxml.etree_api.h
16.668 KB
April 04 2025 08:00:21
root / root
0644
nsclasses.pxi
8.915 KB
April 04 2025 08:00:21
root / root
0644
objectify.cpython-312-x86_64-linux-gnu.so
2.94 MB
April 04 2025 08:00:21
root / root
0755
objectify.pyx
73.96 KB
April 04 2025 08:00:21
root / root
0644
objectpath.pxi
11.182 KB
April 04 2025 08:00:21
root / root
0644
parser.pxi
80.117 KB
April 04 2025 08:00:21
root / root
0644
parsertarget.pxi
6.178 KB
April 04 2025 08:00:21
root / root
0644
proxy.pxi
23.142 KB
April 04 2025 08:00:21
root / root
0644
public-api.pxi
6.51 KB
April 04 2025 08:00:21
root / root
0644
pyclasslookup.py
0.09 KB
April 04 2025 08:00:21
root / root
0644
readonlytree.pxi
18.531 KB
April 04 2025 08:00:21
root / root
0644
relaxng.pxi
6.19 KB
April 04 2025 08:00:21
root / root
0644
sax.cpython-312-x86_64-linux-gnu.so
181.68 KB
April 04 2025 08:00:21
root / root
0755
sax.py
9.085 KB
April 04 2025 08:00:21
root / root
0644
saxparser.pxi
32.541 KB
April 04 2025 08:00:21
root / root
0644
schematron.pxi
5.77 KB
April 04 2025 08:00:21
root / root
0644
serializer.pxi
64.212 KB
April 04 2025 08:00:21
root / root
0644
usedoctest.py
0.225 KB
April 04 2025 08:00:21
root / root
0644
xinclude.pxi
2.398 KB
April 04 2025 08:00:21
root / root
0644
xmlerror.pxi
48.686 KB
April 04 2025 08:00:21
root / root
0644
xmlid.pxi
5.931 KB
April 04 2025 08:00:21
root / root
0644
xmlschema.pxi
8.291 KB
April 04 2025 08:00:21
root / root
0644
xpath.pxi
18.684 KB
April 04 2025 08:00:21
root / root
0644
xslt.pxi
35.179 KB
April 04 2025 08:00:21
root / root
0644
xsltext.pxi
10.828 KB
April 04 2025 08:00:21
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF