Ë
    Dü´j”  ã                   óˆ   — d Z ddlmZmZ ddlmZ ddlmZ ddl	m
Z
mZmZ dZ G d„ d	e«      Z G d
„ dee«      Zdd„Z	 dd„Zy)zDefused xml.dom.expatbuilder
é    )Úprint_functionÚabsolute_import)ÚExpatBuilder)Ú
Namespacesé   )ÚDTDForbiddenÚEntitiesForbiddenÚExternalReferenceForbiddenzxml.dom.expatbuilderc                   ó8   — e Zd ZdZ	 d	d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)
ÚDefusedExpatBuilderzDefused document builderNc                 óZ   — t        j                  | |«       || _        || _        || _        y ©N)Ú_ExpatBuilderÚ__init__Ú
forbid_dtdÚforbid_entitiesÚforbid_external)ÚselfÚoptionsr   r   r   s        úU/root/workspace/ytshorts/venv/lib/python3.12/site-packages/defusedxml/expatbuilder.pyr   zDefusedExpatBuilder.__init__   s+   € ô 	×Ñ˜t WÔ-Ø$ˆŒØ.ˆÔØ.ˆÕó    c                 ó   — t        |||«      ‚r   )r   )r   ÚnameÚsysidÚpubidÚhas_internal_subsets        r   Údefused_start_doctype_declz.DefusedExpatBuilder.defused_start_doctype_decl   s   € Ü˜4 ¨Ó.Ð.r   c                 ó"   — t        ||||||«      ‚r   ©r	   )r   r   Úis_parameter_entityÚvalueÚbaser   r   Únotation_names           r   Údefused_entity_declz'DefusedExpatBuilder.defused_entity_decl    s   € ô    e¨T°5¸%ÀÓOÐOr   c                 ó"   — t        |d ||||«      ‚r   r   )r   r   r"   r   r   r#   s         r   Údefused_unparsed_entity_declz0DefusedExpatBuilder.defused_unparsed_entity_decl%   s   € ä  d¨D°%¸ÀÓNÐNr   c                 ó   — t        ||||«      ‚r   )r
   )r   Úcontextr"   r   r   s        r   Ú#defused_external_entity_ref_handlerz7DefusedExpatBuilder.defused_external_entity_ref_handler)   s   € Ü(¨°$¸¸uÓEÐEr   c                 ó  — t        j                  | |«       | j                  r| j                  |_        | j
                  r"| j                  |_        | j                  |_	        | j                  r| j                  |_        y y r   )r   Úinstallr   r   ÚStartDoctypeDeclHandlerr   r$   ÚEntityDeclHandlerr&   ÚUnparsedEntityDeclHandlerr   r)   ÚExternalEntityRefHandler©r   Úparsers     r   r+   zDefusedExpatBuilder.install,   sh   € Ü×Ñ˜d FÔ+à�?Š?Ø-1×-LÑ-LˆFÔ*Ø×Òà'+×'?Ñ'?ˆFÔ$Ø/3×/PÑ/PˆFÔ,Ø×ÒØ.2×.VÑ.VˆFÕ+ð  r   )NFTT)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r$   r&   r)   r+   © r   r   r   r      s.   „ Ù"ð UYó/ò/òPò
OòFó
Wr   r   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚDefusedExpatBuilderNSz2Defused document builder that supports namespaces.c                 ó€   — t         j                  | |«       | j                  j                  r| j                  |_        y y r   )r   r+   Ú_optionsÚnamespace_declarationsÚstart_namespace_decl_handlerÚStartNamespaceDeclHandlerr0   s     r   r+   zDefusedExpatBuilderNS.install<   s2   € Ü×#Ñ# D¨&Ô1Ø�=‰=×/Ò/Ø/3×/PÑ/PˆFÕ,ð 0r   c                 óN   — t         j                  | «       | j                  «        y r   )r   ÚresetÚ_initNamespaces)r   s    r   r?   zDefusedExpatBuilderNS.resetA   s   € Ü×!Ñ! $Ô'Ø×ÑÕr   N)r2   r3   r4   r5   r+   r?   r6   r   r   r8   r8   9   s   „ Ù<òQó
r   r8   c                 ó  — |rt         }nt        } ||||¬«      }t        | t        «      r0t	        | d«      }	 |j                  |«      }|j                  «        |S |j                  | «      }|S # |j                  «        w xY w)z{Parse a document, returning the resulting Document node.

    'file' may be either a file name or an open file object.
    ©r   r   r   Úrb)r8   r   Ú
isinstanceÚstrÚopenÚ	parseFileÚclose)	ÚfileÚ
namespacesr   r   r   Úbuild_builderÚbuilderÚfpÚresults	            r   ÚparserO   F   s„   € ñ
 Ü-‰ä+ˆÙØ¨ÐP_ô€Gô �$œÔÜ�$˜Óˆð	Ø×&Ñ& rÓ*ˆFà�H‰HŒJð €Mð ×"Ñ" 4Ó(ˆØ€Møð �H‰H�Jús   ¸A. Á.B c                 óX   — |rt         }nt        } ||||¬«      }|j                  | «      S )zOParse a document from a string, returning the resulting
    Document node.
    rB   )r8   r   ÚparseString)ÚstringrJ   r   r   r   rK   rL   s          r   rQ   rQ   ^   s6   € ñ Ü-‰ä+ˆÙØ¨ÐP_ô€Gð ×Ñ˜vÓ&Ð&r   N)TFTT)r5   Ú
__future__r   r   Úxml.dom.expatbuilderr   r   r   Ú_NamespacesÚcommonr   r	   r
   Ú
__origin__r   r8   rO   rQ   r6   r   r   ú<module>rX      sM   ðñç 6å >Ý :ç OÑ Oà#€
ô$W˜-ô $WôN
˜KÐ)<ô 
óð2 VZô'r   