
    F\h>                        S r SrSSK7  SSKJrJr  SSKJr  SSKJrJr  SSKJ	r	  SSKJ
r
Jr   SS	KJr  \" \S
5      (       d	  \" SS5      e SSKJrJrJr  \R*                  r\R,                  r SSKrSSKr\R2                  rCC " S S5      r " S S\R8                  5      r " S S\R<                  \R8                  5      rS r \!S:X  ay  SSK"r#\ " 5       r$\$RK                  \#RL                  R&                  RO                  5       5        \$RQ                  \#RL                  RS                  5       5        \$RU                  S5        gg! \ a
    \" SS5      ef = f! \ a    S r Nf = f)z]
SAX driver for the pyexpat C module.  This driver works with
pyexpat.__version__ == '2.22'.
z0.20    )*)feature_validationfeature_namespaces)feature_namespace_prefixes)feature_external_gesfeature_external_pes)feature_string_interning)property_xml_stringproperty_interning_dict)expatParserCreatezexpat not supportedN)	xmlreadersaxutilshandlerc                     U $ N )os    */usr/lib/python3.13/xml/sax/expatreader.py_mkproxyr   !   s        c                       \ rS rSrSrg)_ClosedParser(   r   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   r   r   (   s    r   r   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
ExpatLocator-   zLocator for use with the ExpatParser class.

This uses a weak reference to the parser object to avoid creating
a circular reference between the parser and the content handler.
c                 $    [        U5      U l        g r   )r   _refselfparsers     r   __init__ExpatLocator.__init__3   s    V$	r   c                 b    U R                   nUR                  c  g UR                  R                  $ r   )r$   _parserErrorColumnNumberr%   s     r   getColumnNumberExpatLocator.getColumnNumber6   s(    >>!~~///r   c                 b    U R                   nUR                  c  gUR                  R                  $ N   )r$   r+   ErrorLineNumberr%   s     r   getLineNumberExpatLocator.getLineNumber<   s(    >>!~~---r   c                 V    U R                   nUc  g UR                  R                  5       $ r   )r$   _sourcegetPublicIdr%   s     r   r7   ExpatLocator.getPublicIdB   &    >~~))++r   c                 V    U R                   nUc  g UR                  R                  5       $ r   )r$   r6   getSystemIdr%   s     r   r;   ExpatLocator.getSystemIdH   r9   r   )r$   N)r   r   r   r   __doc__r(   r-   r3   r7   r;   r   r   r   r   r!   r!   -   s     
%0.,,r   r!   c                       \ rS rSrSrS%S jrS rS rS rS r	S r
S	 rS
 rS&S jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S#r%g$)'ExpatParserQ   z$SAX driver for the pyexpat C module.c                     [         R                  R                  X5        [         R                  " 5       U l        S U l        Xl        S U l        SU l        / U l	        SU l
        S U l        g )NFr   )r   IncrementalParserr(   InputSourcer6   r+   _namespaces_lex_handler_prop_parsing_entity_stack_external_ges
_interning)r&   namespaceHandlingbufsizes      r   r(   ExpatParser.__init__T   sY    ##,,T; ,,.,!%r   c                    [         R                  " U5      nXl         U R                  5         U R                  R                  [        U 5      5        [        R                  R                  X5        g!   U R                  5         e = f)z3Parse an XML document from a URL or an InputSource.N)r   prepare_input_sourcer6   reset_cont_handlersetDocumentLocatorr!   r   rB   parse_close_sourcer&   sources     r   rR   ExpatParser.parsea   sj    ..v6		JJL11,t2DE''--d;	  s   AA2 2Bc                 z    UR                  5       b*  U R                  R                  UR                  5       5        g g r   )r;   r+   SetBaserT   s     r   prepareParserExpatParser.prepareParserq   s1    +LL  !3!3!56 ,r   c                     [         R                  R                  X5        U R                  (       a  U R	                  5         g g r   )r   rB   setContentHandlerrF   _reset_cont_handler)r&   r   s     r   r\   ExpatParser.setContentHandlerw   s.    ##55dD==$$& r   c                     U[         :X  a  U R                  $ U[        :X  a  U R                  S L$ U[        [
        [        4;   a  gU[        :X  a  U R                  $ [        SU-  5      e)Nr   Feature '%s' not recognized)
r   rD   r	   rI   r   r   r   r   rH   SAXNotRecognizedExceptionr&   names     r   
getFeatureExpatParser.getFeature|   sn    %%###--??$..(*>02 2))%%%'(E(LMMr   c                    U R                   (       a  [        S5      eU[        :X  a  X l        g U[        :X  a  X l        g U[        :X  a%  U(       a  U R                  c  0 U l        g g S U l        g U[        :X  a  U(       a  [        S5      eg U[        :X  a  U(       a  [        S5      eg U[        :X  a  U(       a  [        S5      eg [        SU-  5      e)Nz!Cannot set features while parsingz!expat does not support validationz/expat does not read external parameter entitiesz(expat does not report namespace prefixesr`   )rF   SAXNotSupportedExceptionr   rD   r   rH   r	   rI   r   r   r   ra   )r&   rc   states      r   
setFeatureExpatParser.setFeature   s    ==*+NOO%%$))!&--??*&(DO + #'''.79 9  )).EG G  //.>@ @  ,-46 6r   c                 V   U[         R                  :X  a  U R                  $ U[        :X  a  U R                  $ U[
        :X  a\  U R                  (       a@  [        U R                  S5      (       a  U R                  R                  5       $ [        S5      e[        S5      e[        SU-  5      e)NGetInputContextz=This version of expat does not support getting the XML stringz.XML string cannot be returned when not parsingProperty '%s' not recognized)r   property_lexical_handlerrE   r   rI   r
   r+   hasattrrl   ra   rg   rb   s     r   getPropertyExpatParser.getProperty   s    7333))),,??"((||4<<):;;<<77993*+ + /DF F'(F(MNNr   c                     U[         R                  :X  a)  X l        U R                  (       a  U R	                  5         g g U[
        :X  a  X l        g U[        :X  a  [        SU-  5      e[        SU-  5      e)NzProperty '%s' cannot be setrm   )
r   rn   rE   rF   _reset_lex_handler_propr   rI   r
   rg   ra   )r&   rc   values      r   setPropertyExpatParser.setProperty   sw    7333%*"}},,. ,,#O((*+H+/,0 1 1 ,,J,0-1 2 2r   c                    U R                   (       d1  U R                  5         SU l         U R                  R                  5          U R                  R                  X5        g ! [        R                   aO  n[        [        R                  " UR                  5      X05      nU R                  R                  U5         S nAg S nAff = f)NT)rF   rO   rP   startDocumentr+   Parser   errorSAXParseExceptionErrorStringcode_err_handler
fatalError)r&   dataisFinaleexcs        r   feedExpatParser.feed   s    }}JJL DM,,.		.
 LLt-{{ 	.#E$5$5aff$=qGC((--	.s   A   C4AB>>Cc                    U R                   c  g U R                   R                  5       n U R                   R                  S5        U R                   R                  SS5        U R                   R                  U5        g ! [        R
                   aO  n[        [        R                  " UR                  5      X 5      nU R                  R                  U5         S nANzS nAff = f! U R                   R                  U5        f = f)NFr   )r+   GetReparseDeferralEnabledSetReparseDeferralEnabledry   r   rz   r{   r|   r}   r~   r   )r&   was_enabledr   r   s       r   flushExpatParser.flush   s    <<ll<<>	@LL2259LLsE*
 LL22;?	 {{ 	.#E$5$5aff$=qGC((--	. LL22;?s*   7A= =C ACC# C  C# #D c                     U R                   n UR                  5       nUb  UR                  5         UR                  5       nUb  UR                  5         g g ! UR                  5       nUb  UR                  5         f f = fr   )r6   getCharacterStreamclosegetByteStream)r&   rU   files      r   rS   ExpatParser._close_source   su    	,,.D

'')D

   '')D

  s   #A &A<c                    U R                   (       d,  U R                  b  [        U R                  [        5      (       a  g  U R	                  SSS9  U R
                  R                  5         SU l        S U l        SU l        U R                  bF  [        5       nU R                  R                  Ul        U R                  R                  Ul	        Xl        U R                  5         g ! SU l        U R                  bF  [        5       nU R                  R                  Ul        U R                  R                  Ul	        Xl        U R                  5         f = f)Nr   T)r   F)rG   r+   
isinstancer   r   rP   endDocumentrF   r,   r2   rS   r%   s     r   r   ExpatParser.close   s    $,,"6t||]33	!IIc4I(**,!DMDL!DM||'&+/<<+I+I()-)E)E&%  "DM||'&+/<<+I+I()-)E)E&% s    8C# #A,Ec                     U R                   R                  U R                  l        U R                   R                  U R                  l        g r   )rP   processingInstructionr+   ProcessingInstructionHandler
charactersCharacterDataHandlerr&   s    r   r]   ExpatParser._reset_cont_handler  s5    $($6$6$L$L 	1,0,>,>,I,I)r   c                 ,   U R                   nU R                  nUc$  S Ul        S Ul        S Ul        S Ul        S Ul        g UR                  Ul        UR                  Ul        UR                  Ul        U R                  Ul        UR                  Ul        g r   )rE   r+   CommentHandlerStartCdataSectionHandlerEndCdataSectionHandlerStartDoctypeDeclHandlerEndDoctypeDeclHandlercomment
startCDATAendCDATAstart_doctype_declendDTD)r&   lexr'   s      r   rs   #ExpatParser._reset_lex_handler_prop  s    $$;$(F!.2F+,0F)-1F*+/F($'KKF!.1nnF+,/LLF)-1-D-DF*+.::F(r   c                 X   U R                   (       a  [        R                  " U R                  R	                  5       SU R
                  S9U l        SU R                  l        U R                  U R                  l	        U R                  U R                  l        Or[        R                  " U R                  R	                  5       U R
                  S9U l        U R                  U R                  l	        U R                  U R                  l        U R                  5         U R                  U R                  l        U R"                  U R                  l        U R&                  U R                  l        U R*                  U R                  l        S U l        U R0                  (       a  U R3                  5         U R4                  U R                  l         U R8                  U R                  l        U R                  R?                  [        R@                  5        SU l!        / U l"        g ! [<         a     NDf = f)N )internr1   F)#rD   r   r   r6   getEncodingrI   r+   namespace_prefixesstart_element_nsStartElementHandlerend_element_nsEndElementHandlerstart_elementend_elementr]   unparsed_entity_declUnparsedEntityDeclHandlernotation_declNotationDeclHandlerstart_namespace_declStartNamespaceDeclHandlerend_namespace_declEndNamespaceDeclHandler_decl_handler_proprE   rs   external_entity_refExternalEntityRefHandlerskipped_entity_handlerSkippedEntityHandlerAttributeErrorSetParamEntityParsing*XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONErF   rG   r   s    r   rO   ExpatParser.reset  s    --dll.F.F.H#59__FDL./DLL+/3/D/DDLL,-1-@-@DLL* --dll.F.F.H7;HDL/3/A/ADLL,-1-=-=DLL*  "151J1J.+/+=+=(151J1J./3/F/F,"&!!((* 150H0H-	040K0KDLL- 	**<<	>   		s   	H 
H)(H)c                 J    U R                   c  g U R                   R                  $ r   )r+   r,   r   s    r   r-   ExpatParser.getColumnNumberC  s    <<||---r   c                 J    U R                   c  gU R                   R                  $ r0   )r+   r2   r   s    r   r3   ExpatParser.getLineNumberH  s    <<||+++r   c                 6    U R                   R                  5       $ r   )r6   r7   r   s    r   r7   ExpatParser.getPublicIdM      ||''))r   c                 6    U R                   R                  5       $ r   )r6   r;   r   s    r   r;   ExpatParser.getSystemIdP  r   r   c                 N    U R                   R                  U[        U5      5        g r   )rP   startElementAttributesImpl)r&   rc   attrss      r   r   ExpatParser.start_elementT  s    ''nU.CDr   c                 :    U R                   R                  U5        g r   )rP   
endElementrb   s     r   r   ExpatParser.end_elementW      %%d+r   c                    UR                  5       n[        U5      S:X  a  S U4nO%[        U5      S:X  a  US   US   4nO[        U5      n0 n0 nUR                  5        He  u  pgUR                  5       n[        U5      n	U	S:X  a  Un
S U4nO0U	S:X  a  US   < SUS   < 3n
US   US   4nOUS   n
[        U5      nXtU'   XU'   Mg     U R                  R                  US [        XE5      5        g )Nr1      r      :)splitlentupleitemsrP   startElementNSAttributesNSImpl)r&   rc   r   pairnewattrsqnamesanamert   partslengthqnameapairs               r   r   ExpatParser.start_element_nsZ  s    zz|t9>$<DY!^7DG#D ;D#kkmNUKKMEZF{u1#(8U1X6a%(* ae#UO!5M! ,$ 	))$*:8*L	Nr   c                     UR                  5       n[        U5      S:X  a  S U4nO%[        U5      S:X  a  US   US   4nO[        U5      nU R                  R	                  US 5        g )Nr1   r   r   )r   r   r   rP   endElementNS)r&   rc   r   s      r   r   ExpatParser.end_element_ns|  s]    zz|t9>$<DY!^7DG#D;D''d3r   c                 :    U R                   R                  X5        g r   )rP   r   )r&   targetr   s      r   processing_instruction"ExpatParser.processing_instruction  s    00>r   c                 :    U R                   R                  U5        g r   )rP   r   )r&   r   s     r   character_dataExpatParser.character_data  r   r   c                 :    U R                   R                  X5        g r   )rP   startPrefixMapping)r&   prefixuris      r   r    ExpatParser.start_namespace_decl  s    --f:r   c                 :    U R                   R                  U5        g r   )rP   endPrefixMapping)r&   r   s     r   r   ExpatParser.end_namespace_decl  s    ++F3r   c                 <    U R                   R                  XU5        g r   )rE   startDTD)r&   rc   sysidpubidhas_internal_subsets        r   r   ExpatParser.start_doctype_decl  s    ''U;r   c                 <    U R                   R                  XX55        g r   )_dtd_handlerunparsedEntityDecl)r&   rc   baser   r   notation_names         r   r    ExpatParser.unparsed_entity_decl  s    ,,T%Or   c                 <    U R                   R                  XU5        g r   )r  notationDecl)r&   rc   r  r   r   s        r   r   ExpatParser.notation_decl  s    &&tE:r   c                    U R                   (       d  gU R                  R                  XC5      n[        R                  " UU R
                  R                  5       =(       d    S5      nU R                  R                  U R                  U R
                  45        U R                  R                  U5      U l	        XPl         [        R                  R                  X5        U R                  S   u  U l	        U l        U R                  S	 g!    g= f)Nr1    r   )rH   _ent_handlerresolveEntityr   rN   r6   r;   rG   appendr+   ExternalEntityParserCreater   rB   rR   )r&   contextr  r   r   rU   s         r   r   ExpatParser.external_entity_ref  s    !!""00>..v/3||/G/G/I 02/13 	!!4<<">?||>>wG	''--d; (,'9'9"'=$t|r"	s   >D Dc                 R    U(       a  SU-   nU R                   R                  U5        g )N%)rP   skippedEntity)r&   rc   is_pes      r   r   "ExpatParser.skipped_entity_handler  s"    t8D((.r   )	r   rG   rH   rI   rE   rD   r+   rF   r6   N)r   i  )F)&r   r   r   r   r=   r(   rR   rY   r\   rd   ri   rp   ru   r   r   rS   r   r]   rs   rO   r-   r3   r7   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r?   Q   s    .	 7'

N6<O$2 ."@	!*J
6 # N.
,
**E, ND	4?,;4<P;,/r   r?   c                      [        U 0 UD6$ r   )r?   )argskwargss     r   create_parserr    s    '''r   __main__z:http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml)+r=   versionxml.sax._exceptionsxml.sax.handlerr   r   r   r   r   r	   r
   r   xml.parsersr   ro   SAXReaderNotAvailableImportErrorxml.saxr   r   r   r   r   _weakrefweakrefproxyr   r   Locatorr!   rB   r?   r  r   xml.sax.saxutilsxmlpr\   saxXMLGeneratorsetErrorHandlerErrorHandlerrR   r   r   r   <module>r1     s\  
  ! B 6 F 4 HA! 5.))#$94@@ * 0 0))-- 

 }}H	 	
,9$$ ,Hg/)--y/@/@ g/V(
 zA((5578cgg**,-GGHI a  =
 5t
<<=  s   E 0E E	E'&E'