3
_.                 @   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rnd
dlZd
dlZd
dlZejj rdejkrejd jdZ[dZejdd dkrejjerejjejdZg fddZejdd dkrdd Zn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  }|j| |j| |j|  d S )N)make_parsersetContentHandlersetErrorHandlerparse)sourcehandlererrorHandlerparser r   &/usr/lib/python3.6/xml/sax/__init__.pyr      s    

r   c             C   sp   dd l }|d krt }t }|j| |j| t }t| trR|j|j	|  n|j
|j|  |j| d S )N    )ior   r
   r   r   r   
isinstancestrZsetCharacterStreamStringIOZsetByteStreamBytesIOr   )stringr   r   r   r   Zinpsrcr   r   r   parseString#   s    


r   zxml.sax.expatreaderr   NZPY_SAX_PARSER,zpython.xml.sax.parser   Zjavac             C   sr   xb| t  D ]V}yt|S  tk
rL } zddl}||jkr< W Y dd}~X q
 tk
r^   Y q
X q
W tdddS )a&  Creates and returns a SAX parser.

    Creates the first parser it is able to instantiate of the ones
    given in the list created by doing parser_list +
    default_parser_list.  The lists must contain the names of Python
    modules containing both a SAX parser and a create_parser function.r   NzNo parsers found)default_parser_list_create_parserImportErrorsysmodulesr	   )Zparser_listparser_nameer!   r   r   r   r
   F   s    

r
   c             C   s$   ddl m} |j| dt }|j S )Nr   )imp)Zorg.python.corer%   Z
importNameglobalscreate_parser)r#   r%   
drv_moduler   r   r   r   a   s    r   c             C   s   t | i i dg}|j S )Nr'   )
__import__r'   )r#   r(   r   r   r   r   g   s    )__doc__Z	xmlreaderr   r   r   r   _exceptionsr   r   r   r   r	   r   r   r   _falseZxml.sax.expatreaderZxmlosr!   flagsignore_environmentenvironsplitZ_keyplatformregistryZcontainsKeyZgetPropertyr
   r   r   r   r   r   <module>   s*   
