
    qh                         S r SSKJrJr  SSKJr  SSKJr  SSK	J
r
JrJr  Sr " S S	\5      r " S
 S\\5      rSS jr SS jrg)zDefused xml.dom.expatbuilder
    )print_functionabsolute_import)ExpatBuilder)
Namespaces   )DTDForbiddenEntitiesForbiddenExternalReferenceForbiddenzxml.dom.expatbuilderc                   B    \ rS rSrSr SS jrS rS rS rS r	S	 r
S
rg)DefusedExpatBuilder   zDefused document builderNc                 T    [         R                  " X5        X l        X0l        X@l        g N)_ExpatBuilder__init__
forbid_dtdforbid_entitiesforbid_external)selfoptionsr   r   r   s        I/var/www/html/env/lib/python3.13/site-packages/defusedxml/expatbuilder.pyr   DefusedExpatBuilder.__init__   s#     	t-$..    c                     [        XU5      er   )r   )r   namesysidpubidhas_internal_subsets        r   defused_start_doctype_decl.DefusedExpatBuilder.defused_start_doctype_decl   s    4..r   c                     [        XXEXg5      er   r	   )r   r   is_parameter_entityvaluebaser   r   notation_names           r   defused_entity_decl'DefusedExpatBuilder.defused_entity_decl    s      T%OOr   c                     [        US X#XE5      er   r"   )r   r   r%   r   r   r&   s         r   defused_unparsed_entity_decl0DefusedExpatBuilder.defused_unparsed_entity_decl%   s    dDNNr   c                     [        XX45      er   )r
   )r   contextr%   r   r   s        r   #defused_external_entity_ref_handler7DefusedExpatBuilder.defused_external_entity_ref_handler)   s    (EEr   c                     [         R                  " X5        U R                  (       a  U R                  Ul        U R
                  (       a"  U R                  Ul        U R                  Ul	        U R                  (       a  U R                  Ul        g g r   )r   installr   r   StartDoctypeDeclHandlerr   r'   EntityDeclHandlerr*   UnparsedEntityDeclHandlerr   r.   ExternalEntityRefHandlerr   parsers     r   r1   DefusedExpatBuilder.install,   sf    d+??-1-L-LF*'+'?'?F$/3/P/PF,.2.V.VF+  r   r   r   r   )NFTT)__name__
__module____qualname____firstlineno____doc__r   r   r'   r*   r.   r1   __static_attributes__ r   r   r   r      s.    " UY//P
OF
Wr   r   c                   $    \ rS rSrSrS rS rSrg)DefusedExpatBuilderNS9   z2Defused document builder that supports namespaces.c                     [         R                  X5        U R                  R                  (       a  U R                  Ul        g g r   )r   r1   _optionsnamespace_declarationsstart_namespace_decl_handlerStartNamespaceDeclHandlerr6   s     r   r1   DefusedExpatBuilderNS.install<   s0    ##D1==///3/P/PF, 0r   c                 N    [         R                  U 5        U R                  5         g r   )r   reset_initNamespaces)r   s    r   rK   DefusedExpatBuilderNS.resetA   s    !!$'r   r@   N)r:   r;   r<   r=   r>   r1   rK   r?   r@   r   r   rB   rB   9   s    <Q
r   rB   c                    U(       a  [         nO[        nU" X#US9n[        U [        5      (       a0  [	        U S5      n UR                  U5      nUR                  5         U$ UR                  U 5      nU$ ! UR                  5         f = f)zsParse a document, returning the resulting Document node.

'file' may be either a file name or an open file object.
r9   rb)rB   r   
isinstancestropen	parseFileclose)	file
namespacesr   r   r   build_builderbuilderfpresults	            r   parser[   F   s    
 -+P_G $$	&&r*FHHJ M ""4(M HHJs   A4 4Bc                 Z    U(       a  [         nO[        nU" X#US9nUR                  U 5      $ )zGParse a document from a string, returning the resulting
Document node.
r9   )rB   r   parseString)stringrV   r   r   r   rW   rX   s          r   r]   r]   ^   s4     -+P_G v&&r   N)TFTT)r>   
__future__r   r   xml.dom.expatbuilderr   r   r   _Namespacescommonr   r	   r
   
__origin__r   rB   r[   r]   r@   r   r   <module>rd      sM    6 > : O O#
$W- $WN
K)< 
2 VZ'r   