U
    >Ke                     @   sT   d Z ddlmZmZ ddlmZ ddlmZm	Z	m
Z
 dZG dd deZd	d
 ZdS )zDefused xml.sax.expatreader
    )print_functionabsolute_import)ExpatParser   )DTDForbiddenEntitiesForbiddenExternalReferenceForbiddenzxml.sax.expatreaderc                   @   sB   e Zd ZdZdddZdd	 Zd
d Zdd Zdd Zdd Z	dS )DefusedExpatParserz,Defused SAX driver for the pyexpat C module.r     FTc                 C   s$   t | || || _|| _|| _d S N)_ExpatParser__init__
forbid_dtdforbid_entitiesforbid_external)selfZnamespaceHandlingbufsizer   r   r    r   :/tmp/pip-unpacked-wheel-rlsosmxh/defusedxml/expatreader.pyr      s    zDefusedExpatParser.__init__c                 C   s   t |||d S r   )r   )r   namesysidpubidZhas_internal_subsetr   r   r   defused_start_doctype_decl!   s    z-DefusedExpatParser.defused_start_doctype_declc                 C   s   t ||||||d S r   r   )r   r   is_parameter_entityvaluebaser   r   notation_namer   r   r   defused_entity_decl$   s    z&DefusedExpatParser.defused_entity_declc                 C   s   t |d ||||d S r   r   )r   r   r   r   r   r   r   r   r   defused_unparsed_entity_decl)   s    z/DefusedExpatParser.defused_unparsed_entity_declc                 C   s   t ||||d S r   )r   )r   contextr   r   r   r   r   r   #defused_external_entity_ref_handler-   s    z6DefusedExpatParser.defused_external_entity_ref_handlerc                 C   sF   t |  | j}| jr| j|_| jr4| j|_| j	|_
| jrB| j|_d S r   )r   reset_parserr   r   StartDoctypeDeclHandlerr   r   EntityDeclHandlerr   UnparsedEntityDeclHandlerr   r!   ExternalEntityRefHandler)r   parserr   r   r   r"   0   s    
zDefusedExpatParser.resetN)r   r
   FTT)
__name__
__module____qualname____doc__r   r   r   r   r!   r"   r   r   r   r   r	      s        
r	   c                  O   s
   t | |S r   )r	   )argskwargsr   r   r   create_parser<   s    r/   N)r,   
__future__r   r   Zxml.sax.expatreaderr   r   commonr   r   r   
__origin__r	   r/   r   r   r   r   <module>   s   +