SILENT KILLERPanel

Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > site-packages > lxml >


Operation   : Linux premium131.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
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/cloudlinux/venv/lib64/python3.11/site-packages/lxml/

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
html Directory - -
includes Directory - -
isoschematron Directory - -
ElementInclude.py File 8560 bytes April 17 2025 13:10:58.
__init__.py File 575 bytes April 17 2025 13:10:58.
_elementpath.cpython-311-x86_64-linux-gnu.so File 230680 bytes April 17 2025 13:11:30.
_elementpath.py File 10742 bytes April 17 2025 13:10:58.
apihelpers.pxi File 64452 bytes April 17 2025 13:10:58.
builder.cpython-311-x86_64-linux-gnu.so File 123624 bytes April 17 2025 13:11:30.
builder.py File 8147 bytes April 17 2025 13:10:58.
classlookup.pxi File 22462 bytes April 17 2025 13:10:58.
cleanup.pxi File 8458 bytes April 17 2025 13:10:58.
cssselect.py File 3366 bytes April 17 2025 13:10:58.
debug.pxi File 3283 bytes April 17 2025 13:10:58.
docloader.pxi File 5783 bytes April 17 2025 13:10:58.
doctestcompare.py File 18339 bytes April 17 2025 13:10:58.
dtd.pxi File 15219 bytes April 17 2025 13:10:58.
etree.cpython-311-x86_64-linux-gnu.so File 5797240 bytes April 17 2025 13:11:30.
etree.h File 8575 bytes April 17 2025 13:10:58.
etree.pyx File 132415 bytes April 17 2025 13:10:58.
etree_api.h File 17467 bytes April 17 2025 13:10:58.
extensions.pxi File 33241 bytes April 17 2025 13:10:58.
iterparse.pxi File 16607 bytes April 17 2025 13:10:58.
lxml.etree.h File 8575 bytes April 17 2025 13:10:58.
lxml.etree_api.h File 17472 bytes April 17 2025 13:10:58.
nsclasses.pxi File 9145 bytes April 17 2025 13:10:58.
objectify.cpython-311-x86_64-linux-gnu.so File 3351520 bytes April 17 2025 13:11:30.
objectify.pyx File 77100 bytes April 17 2025 13:10:58.
objectpath.pxi File 11479 bytes April 17 2025 13:10:58.
parser.pxi File 78247 bytes April 17 2025 13:10:58.
parsertarget.pxi File 6859 bytes April 17 2025 13:10:58.
proxy.pxi File 23562 bytes April 17 2025 13:10:58.
public-api.pxi File 6660 bytes April 17 2025 13:10:58.
pyclasslookup.py File 92 bytes April 17 2025 13:10:58.
readonlytree.pxi File 19048 bytes April 17 2025 13:10:58.
relaxng.pxi File 6085 bytes April 17 2025 13:10:58.
sax.cpython-311-x86_64-linux-gnu.so File 201680 bytes April 17 2025 13:11:30.
sax.py File 9396 bytes April 17 2025 13:10:58.
saxparser.pxi File 32542 bytes April 17 2025 13:10:58.
schematron.pxi File 5782 bytes April 17 2025 13:10:58.
serializer.pxi File 67999 bytes April 17 2025 13:10:58.
usedoctest.py File 230 bytes April 17 2025 13:10:58.
xinclude.pxi File 2460 bytes April 17 2025 13:10:58.
xmlerror.pxi File 49531 bytes April 17 2025 13:10:58.
xmlid.pxi File 6064 bytes April 17 2025 13:10:58.
xmlschema.pxi File 8079 bytes April 17 2025 13:10:58.
xpath.pxi File 19571 bytes April 17 2025 13:10:58.
xslt.pxi File 36694 bytes April 17 2025 13:10:58.
xsltext.pxi File 11085 bytes April 17 2025 13:10:58.

Reading File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/lxml//xmlschema.pxi

#  support for XMLSchema validation
from lxml.includes cimport xmlschema


cdef class XMLSchemaError(LxmlError):
    """Base class of all XML Schema errors
    """

cdef class XMLSchemaParseError(XMLSchemaError):
    """Error while parsing an XML document as XML Schema.
    """

cdef class XMLSchemaValidateError(XMLSchemaError):
    """Error while validating an XML document with an XML Schema.
    """


################################################################################
# XMLSchema

cdef XPath _check_for_default_attributes = XPath(
    u"boolean(//xs:attribute[@default or @fixed][1])",
    namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})


cdef class XMLSchema(_Validator):
    u"""XMLSchema(self, etree=None, file=None)
    Turn a document into an XML Schema validator.

    Either pass a schema as Element or ElementTree, or pass a file or
    filename through the ``file`` keyword argument.

    Passing the ``attribute_defaults`` boolean option will make the
    schema insert default/fixed attributes into validated documents.
    """
    cdef xmlschema.xmlSchema* _c_schema
    cdef _Document _doc
    cdef bint _has_default_attributes
    cdef bint _add_attribute_defaults

    def __cinit__(self):
        self._has_default_attributes = True # play it safe
        self._add_attribute_defaults = False

    def __init__(self, etree=None, *, file=None, bint attribute_defaults=False):
        cdef xmlschema.xmlSchemaParserCtxt* parser_ctxt
        cdef xmlDoc* c_doc

        self._add_attribute_defaults = attribute_defaults
        _Validator.__init__(self)
        c_doc = NULL
        if etree is not None:
            doc = _documentOrRaise(etree)
            root_node = _rootNodeOrRaise(etree)
            c_doc = _copyDocRoot(doc._c_doc, root_node._c_node)
            self._doc = _documentFactory(c_doc, doc._parser)
            parser_ctxt = xmlschema.xmlSchemaNewDocParserCtxt(c_doc)
        elif file is not None:
            file = _getFSPathOrObject(file)
            if _isString(file):
                filename = _encodeFilename(file)
                parser_ctxt = xmlschema.xmlSchemaNewParserCtxt(_cstr(filename))
            else:
                self._doc = _parseDocument(file, None, None)
                parser_ctxt = xmlschema.xmlSchemaNewDocParserCtxt(self._doc._c_doc)
        else:
            raise XMLSchemaParseError, u"No tree or file given"

        if parser_ctxt is NULL:
            raise MemoryError()

        xmlschema.xmlSchemaSetParserStructuredErrors(
            parser_ctxt, _receiveError, <void*>self._error_log)
        if self._doc is not None:
            # calling xmlSchemaParse on a schema with imports or
            # includes will cause libxml2 to create an internal
            # context for parsing, so push an implied context to route
            # resolve requests to the document's parser
            __GLOBAL_PARSER_CONTEXT.pushImpliedContextFromParser(self._doc._parser)
        with nogil:
            orig_loader = _register_document_loader()
            self._c_schema = xmlschema.xmlSchemaParse(parser_ctxt)
            _reset_document_loader(orig_loader)
        if self._doc is not None:
            __GLOBAL_PARSER_CONTEXT.popImpliedContext()
        xmlschema.xmlSchemaFreeParserCtxt(parser_ctxt)

        if self._c_schema is NULL:
            raise XMLSchemaParseError(
                self._error_log._buildExceptionMessage(
                    u"Document is not valid XML Schema"),
                self._error_log)

        if self._doc is not None:
            self._has_default_attributes = _check_for_default_attributes(self._doc)
        self._add_attribute_defaults = attribute_defaults and self._has_default_attributes

    def __dealloc__(self):
        xmlschema.xmlSchemaFree(self._c_schema)

    def __call__(self, etree):
        u"""__call__(self, etree)

        Validate doc using XML Schema.

        Returns true if document is valid, false if not.
        """
        cdef xmlschema.xmlSchemaValidCtxt* valid_ctxt
        cdef _Document doc
        cdef _Element root_node
        cdef xmlDoc* c_doc
        cdef int ret

        assert self._c_schema is not NULL, "Schema instance not initialised"
        doc = _documentOrRaise(etree)
        root_node = _rootNodeOrRaise(etree)

        valid_ctxt = xmlschema.xmlSchemaNewValidCtxt(self._c_schema)
        if valid_ctxt is NULL:
            raise MemoryError()

        try:
            if self._add_attribute_defaults:
                xmlschema.xmlSchemaSetValidOptions(
                    valid_ctxt, xmlschema.XML_SCHEMA_VAL_VC_I_CREATE)

            self._error_log.clear()
            xmlschema.xmlSchemaSetValidStructuredErrors(
                valid_ctxt, _receiveError, <void*>self._error_log)

            c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
            with nogil:
                ret = xmlschema.xmlSchemaValidateDoc(valid_ctxt, c_doc)
            _destroyFakeDoc(doc._c_doc, c_doc)
        finally:
            xmlschema.xmlSchemaFreeValidCtxt(valid_ctxt)

        if ret == -1:
            raise XMLSchemaValidateError(
                u"Internal error in XML Schema validation.",
                self._error_log)
        if ret == 0:
            return True
        else:
            return False

    cdef _ParserSchemaValidationContext _newSaxValidator(
            self, bint add_default_attributes):
        cdef _ParserSchemaValidationContext context
        context = _ParserSchemaValidationContext.__new__(_ParserSchemaValidationContext)
        context._schema = self
        context._add_default_attributes = (self._has_default_attributes and (
            add_default_attributes or self._add_attribute_defaults))
        return context

@cython.final
@cython.internal
cdef class _ParserSchemaValidationContext:
    cdef XMLSchema _schema
    cdef xmlschema.xmlSchemaValidCtxt* _valid_ctxt
    cdef xmlschema.xmlSchemaSAXPlugStruct* _sax_plug
    cdef bint _add_default_attributes
    def __cinit__(self):
        self._valid_ctxt = NULL
        self._sax_plug = NULL
        self._add_default_attributes = False

    def __dealloc__(self):
        self.disconnect()
        if self._valid_ctxt:
            xmlschema.xmlSchemaFreeValidCtxt(self._valid_ctxt)

    cdef _ParserSchemaValidationContext copy(self):
        assert self._schema is not None, "_ParserSchemaValidationContext not initialised"
        return self._schema._newSaxValidator(
            self._add_default_attributes)

    cdef void inject_default_attributes(self, xmlDoc* c_doc):
        # we currently need to insert default attributes manually
        # after parsing, as libxml2 does not support this at parse
        # time
        if self._add_default_attributes:
            with nogil:
                xmlschema.xmlSchemaValidateDoc(self._valid_ctxt, c_doc)

    cdef int connect(self, xmlparser.xmlParserCtxt* c_ctxt, _BaseErrorLog error_log) except -1:
        if self._valid_ctxt is NULL:
            self._valid_ctxt = xmlschema.xmlSchemaNewValidCtxt(
                self._schema._c_schema)
            if self._valid_ctxt is NULL:
                raise MemoryError()
            if self._add_default_attributes:
                xmlschema.xmlSchemaSetValidOptions(
                    self._valid_ctxt, xmlschema.XML_SCHEMA_VAL_VC_I_CREATE)
        if error_log is not None:
            xmlschema.xmlSchemaSetValidStructuredErrors(
                self._valid_ctxt, _receiveError, <void*>error_log)
        self._sax_plug = xmlschema.xmlSchemaSAXPlug(
            self._valid_ctxt, &c_ctxt.sax, &c_ctxt.userData)

    cdef void disconnect(self):
        if self._sax_plug is not NULL:
            xmlschema.xmlSchemaSAXUnplug(self._sax_plug)
            self._sax_plug = NULL
        if self._valid_ctxt is not NULL:
            xmlschema.xmlSchemaSetValidStructuredErrors(
                self._valid_ctxt, NULL, NULL)

    cdef bint isvalid(self):
        if self._valid_ctxt is NULL:
            return 1 # valid
        return xmlschema.xmlSchemaIsValid(self._valid_ctxt)

SILENT KILLER Tool