o
    e                      @   s   d Z ddlmZmZ ddlZddlZddlmZ ddlmZ	 ddlm
Z ddlmZ dd	lmZ er7ddlZndd
lmZ ddlmZ ddlmZmZmZmZ dZdd Zer\e \ZZe ZG dd deZe Z ZZeee	ee\Z
ZZeZ g dZ!dS )z%Defused xml.etree.ElementTree facade
    )print_functionabsolute_importN)
ParseError)TreeBuilder)parse)tostring   )PY3)	XMLParser)	iterparse)DTDForbiddenEntitiesForbiddenExternalReferenceForbidden_generate_etree_functionsxml.etree.ElementTreec               
   C   s  d} d}t j| d}t j|d}dt j|< z1t| }W |t j| < |dur-|t j|< nt j|d t jd }|durA||_n3t|drH|`n+|t j| < |durX|t j|< nt j|d t jd }|durl||_w t|drs|`w |j}|j}t	|_	||fS )zPython 3.3 hides the pure Python code but defusedxml requires it.

    The code is based on test.support.import_fresh_module().
    r   _elementtreeNz	xml.etreeElementTree)
sysmodulespop	importlibimport_moduler   hasattrr
   r   r   )	pymodnamecmodnamepymodcmod
pure_pymod	etree_pkg
_XMLParser
_iterparse r!   I/var/www/html/venv/lib/python3.10/site-packages/defusedxml/ElementTree.py_get_py3_cls$   s>   






r#   c                   @   sB   e Zd ZedddddfddZdd Zdd	 Zd
d Zdd ZdS )DefusedXMLParserNFTc                 C   s   t j| ||d |tur|rtdtjdtd || _|| _|| _	t
r(| j}n| j}| jr2| j|_| jr=| j|_| j|_| j	rF| j|_d S d S )N)targetencodingz#'html=True' is no longer supported.zW'html' keyword argument is no longer supported. Pass in arguments as keyword arguments.)category)r   __init__	_sentinel	TypeErrorwarningswarnDeprecationWarning
forbid_dtdforbid_entitiesforbid_externalr	   parser_parserdefused_start_doctype_declStartDoctypeDeclHandlerdefused_entity_declEntityDeclHandlerdefused_unparsed_entity_declUnparsedEntityDeclHandler#defused_external_entity_ref_handlerExternalEntityRefHandler)selfhtmlr%   r&   r.   r/   r0   r1   r!   r!   r"   r(   P   s,   
zDefusedXMLParser.__init__c                 C   s   t |||N)r   )r;   namesysidpubidhas_internal_subsetr!   r!   r"   r3   v   s   z+DefusedXMLParser.defused_start_doctype_declc                 C   s   t ||||||r=   r   )r;   r>   is_parameter_entityvaluebaser?   r@   notation_namer!   r!   r"   r5   y   s   z$DefusedXMLParser.defused_entity_declc                 C   s   t |d ||||r=   rB   )r;   r>   rE   r?   r@   rF   r!   r!   r"   r7   ~   s   z-DefusedXMLParser.defused_unparsed_entity_declc                 C   s   t ||||r=   )r   )r;   contextrE   r?   r@   r!   r!   r"   r9      s   z4DefusedXMLParser.defused_external_entity_ref_handler)	__name__
__module____qualname__r)   r(   r3   r5   r7   r9   r!   r!   r!   r"   r$   O   s    
&r$   )	r   XMLXMLParser
   XMLTreeBuilder
fromstringr   r   r   )"__doc__
__future__r   r   r   r+   xml.etree.ElementTreer   r   _TreeBuilderr   _parser   commonr	   r   r
   r   r   r    r   r   r   r   
__origin__r#   objectr)   r$   rM   rL   rN   rK   __all__r!   r!   r!   r"   <module>   s4   
$
9
