o
    p¨Êh°  ã                   @   s~   d Z ddlZejd dkZG dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZ	dd„ Z
dd„ ZdS )z1Common constants, exceptions and helpe functions
é    Né   c                   @   s   e Zd ZdZdd„ ZdS )ÚDefusedXmlExceptionzBase exception
    c                 C   s   t | ƒS ©N)Ústr)Úself© r   úC/var/www/html/env/lib/python3.10/site-packages/defusedxml/common.pyÚ__repr__   s   zDefusedXmlException.__repr__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r      s    r   c                       ó(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚDTDForbiddenz*Document type definition is forbidden
    c                    s$   t t| ƒ ¡  || _|| _|| _d S r   )Úsuperr   Ú__init__ÚnameÚsysidÚpubid)r   r   r   r   ©Ú	__class__r   r   r      s   
zDTDForbidden.__init__c                 C   ó   d}|  | j| j| j¡S )Nz7DTDForbidden(name='{}', system_id={!r}, public_id={!r})©Úformatr   r   r   ©r   Útplr   r   r   Ú__str__   ó   zDTDForbidden.__str__©r
   r   r   r   r   r   Ú__classcell__r   r   r   r   r      s    r   c                       r   )ÚEntitiesForbiddenz#Entity definition is forbidden
    c                    s6   t t| ƒ ¡  || _|| _|| _|| _|| _|| _d S r   )	r   r    r   r   ÚvalueÚbaser   r   Únotation_name)r   r   r!   r"   r   r   r#   r   r   r   r   (   s   
zEntitiesForbidden.__init__c                 C   r   )Nz<EntitiesForbidden(name='{}', system_id={!r}, public_id={!r})r   r   r   r   r   r   1   r   zEntitiesForbidden.__str__r   r   r   r   r   r    $   s    	r    c                       r   )ÚExternalReferenceForbiddenz1Resolving an external reference is forbidden
    c                    s*   t t| ƒ ¡  || _|| _|| _|| _d S r   )r   r$   r   Úcontextr"   r   r   )r   r%   r"   r   r   r   r   r   r   :   s
   
z#ExternalReferenceForbidden.__init__c                 C   s   d}|  | j| j¡S )Nz8ExternalReferenceForbidden(system_id='{}', public_id={}))r   r   r   r   r   r   r   r   A   s   z"ExternalReferenceForbidden.__str__r   r   r   r   r   r$   6   s    r$   c                   @   s   e Zd ZdZdS )ÚNotSupportedErrorz#The operation is not supported
    N)r
   r   r   r   r   r   r   r   r&   F   s    r&   c                 C   sz   | t j| j u s
J ‚| j}t|i i dgƒ t j| }tt|ƒƒ}t| ƒ ¡ D ]\}}| 	d¡s3||vr4q&t
|||ƒ q&|S )NÚ*Ú_)ÚsysÚmodulesr
   Ú
__origin__Ú
__import__ÚsetÚdirÚvarsÚitemsÚ
startswithÚsetattr)Údefused_modÚstdlib_nameÚ
stdlib_modÚstdlib_namesr   Úobjr   r   r   Ú_apply_defusingK   s   
r8   c                    sJ   		d
‡ ‡‡fdd„	}		d‡ ‡‡fdd„	}		d‡ ‡fdd	„	}|||fS )zdFactory for functions needed by etree, dependent on whether
    cElementTree or ElementTree is used.NFTc                    s$   |d u rˆ ˆƒ |||d�}ˆ| |ƒS ©N)ÚtargetÚ
forbid_dtdÚforbid_entitiesÚforbid_externalr   )ÚsourceÚparserr;   r<   r=   )ÚDefusedXMLParserÚ_TreeBuilderÚ_parser   r   Úparse]   s   ý
z(_generate_etree_functions.<locals>.parsec                    s&   |d u rˆ ˆƒ |||d�}ˆ| ||ƒS r9   r   )r>   Úeventsr?   r;   r<   r=   )r@   rA   Ú
_iterparser   r   Ú	iterparsef   s   ýz,_generate_etree_functions.<locals>.iterparsec                    s$   ˆ ˆƒ |||d�}|  | ¡ | ¡ S r9   )ÚfeedÚclose)Útextr;   r<   r=   r?   )r@   rA   r   r   Ú
fromstringo   s   ý
z-_generate_etree_functions.<locals>.fromstring)NFTT)NNFTT)FTTr   )r@   rA   rB   rE   rC   rF   rJ   r   )r@   rA   rE   rB   r   Ú_generate_etree_functionsX   s   ÿ	ÿ	ÿ
	rK   )r   r)   Úversion_infoÚPY3Ú
ValueErrorr   r   r    r$   r&   r8   rK   r   r   r   r   Ú<module>   s   