U
    muf”  ã                   @   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-d6x4jz3i/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   +