o
    ˜»áf:  ã                   @   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r€d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.    

ü