o
    [c:                     @   s  d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZ e fddZe fddZd	gZd
Zer7d
dlZd
dlZd
dlZejjsPdejv rPejd dZ[dZejdd dkrkejerkejedZdddZejdd dkrdd Z[dS dd Z[dS )a  Simple API for XML (SAX) implementation for Python.

This module provides an implementation of the SAX 2 interface;
information about the Java version of the interface can be found at
http://www.megginson.com/SAX/.  The Python version of the interface is
documented at <...>.

This package contains the following modules:

handler -- Base classes and constants which define the SAX 2 API for
           the 'client-side' of SAX for Python.

saxutils -- Implementation of the convenience classes commonly used to
            work with SAX.

xmlreader -- Base classes and constants which define the SAX 2 API for
             the parsers used with SAX for Python.

expatreader -- Driver that allows use of the Expat parser with SAX.
   )InputSource)ContentHandlerErrorHandler)SAXExceptionSAXNotRecognizedExceptionSAXParseExceptionSAXNotSupportedExceptionSAXReaderNotAvailablec                 C   s(   t  }|| || ||  d S )N)make_parsersetContentHandlersetErrorHandlerparse)sourcehandlererrorHandlerparser r   '/usr/lib/python3.10/xml/sax/__init__.pyr      s   

r   c                 C   sp   dd l }|d u rt }t }|| || t }t| tr)||	|  n|
||  || d S )N    )ior   r
   r   r   r   
isinstancestrsetCharacterStreamStringIOsetByteStreamBytesIOr   )stringr   r   r   r   inpsrcr   r   r   parseString#   s   


r   zxml.sax.expatreaderr   NPY_SAX_PARSER,zpython.xml.sax.parser   javar   c              	   C   s`   t | t D ]$}zt|W   S  ty"   ddl}||jv r  Y q ty*   Y qw tdd)a3  Creates and returns a SAX parser.

    Creates the first parser it is able to instantiate of the ones
    given in the iterable created by chaining parser_list and
    default_parser_list.  The iterables must contain the names of Python
    modules containing both a SAX parser and a create_parser function.r   NzNo parsers found)listdefault_parser_list_create_parserImportErrorsysmodulesr	   )parser_listparser_namer'   r   r   r   r
   F   s   

r
   c                 C   s$   ddl m} || dt }| S )Nr   )imp)org.python.corer+   
importNameglobalscreate_parser)r*   r+   
drv_moduler   r   r   r%   a   s   r%   c                 C   s   t | i i dg}| S )Nr/   )
__import__r/   )r*   r0   r   r   r   r%   g   s   )r   )__doc__	xmlreaderr   r   r   r   _exceptionsr   r   r   r   r	   r   r   r$   _falsexml.sax.expatreaderxmlosr'   flagsignore_environmentenvironsplit_keyplatformregistrycontainsKeygetPropertyr
   r%   r   r   r   r   <module>   s.    

