B
    *gŒX	  ã               @   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   ú5lib/python3.7/site-packages/defusedxml/expatreader.pyr      s    zDefusedExpatParser.__init__c             C   s   t |||ƒ‚d S )N)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 )N)r   )r   r   Z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 )N)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 )N)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 )N)r   ÚresetZ_parserr   r   ZStartDoctypeDeclHandlerr   r   ZEntityDeclHandlerr   ZUnparsedEntityDeclHandlerr   r   ZExternalEntityRefHandler)r   Úparserr   r   r   r   .   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 )N)r	   )ÚargsÚkwargsr   r   r   Úcreate_parser:   s    r'   N)r$   Z
__future__r   r   Zxml.sax.expatreaderr   r   Úcommonr   r   r   Z
__origin__r	   r'   r   r   r   r   Ú<module>   s   (