f>dZdZddlddlmZmZddlmZddlmZmZddlm Z ddlm Z m Z  dd l m Z ee d s ed d dd lmZmZmZej*Zej,Z dd lZdd lZej2Z[[GddZGddej8ZGddej<ej8ZdZ e!dk(rydd l"Z#e Z$e$jKe#jLj&jOe$jQe#jLjSe$jUdy y #e$r ed d wxYw#e$rdZYwxYw)z] SAX driver for the pyexpat C module. This driver works with pyexpat.__version__ == '2.22'. z0.20)*)feature_validationfeature_namespaces)feature_namespace_prefixes)feature_external_gesfeature_external_pes)feature_string_interning)property_xml_stringproperty_interning_dict)expat ParserCreatezexpat not supportedN) xmlreadersaxutilshandlerc|SN)os */usr/lib/python3.12/xml/sax/expatreader.py_mkproxyr!sc eZdZy) _ClosedParserN)__name__ __module__ __qualname__rrrrr(srrc.eZdZdZdZdZdZdZdZy) ExpatLocatorzLocator 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$t||_yr)r_refselfparsers r__init__zExpatLocator.__init__3sV$ rc`|j}|jy|jjSr)r _parserErrorColumnNumberr!s rgetColumnNumberzExpatLocator.getColumnNumber6s( >> !~~///rc`|j}|jy|jjSN)r r&ErrorLineNumberr!s r getLineNumberzExpatLocator.getLineNumber<s( >> !~~---rcT|j}|y|jjSr)r _source getPublicIdr!s rr0zExpatLocator.getPublicIdB& >~~))++rcT|j}|y|jjSr)r r/ getSystemIdr!s rr3zExpatLocator.getSystemIdHr1rN) rrr__doc__r$r(r-r0r3rrrrr-s  %0 . , ,rrceZdZdZd#dZdZdZdZdZdZ dZ d Z d$d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#y")% ExpatParserz$SAX driver for the pyexpat C module.ctjj||tj|_d|_||_d|_d|_g|_ d|_ d|_ y)NFr) rIncrementalParserr$ InputSourcer/r& _namespaces_lex_handler_prop_parsing _entity_stack _external_ges _interning)r"namespaceHandlingbufsizes rr$zExpatParser.__init__Ts]##,,T7; ,,.  ,!% rctj|}||_ |j|jj t |tjj||y#|jxYw)z3Parse an XML document from a URL or an InputSource.N) rprepare_input_sourcer/reset _cont_handlersetDocumentLocatorrrr8parse _close_sourcer"sources rrGzExpatParser.parseasn..v6   JJL    1 1,t2D E  ' ' - -dF ;     s AA33Bcx|j*|jj|jyyr)r3r&SetBaserIs r prepareParserzExpatParser.prepareParserqs1     + LL !3!3!5 6 ,rc~tjj|||jr|j yyr)rr8setContentHandlerr<_reset_cont_handler)r"rs rrOzExpatParser.setContentHandlerws0##55dGD ==  $ $ & rc|tk(r |jS|tk(r|jduS|tt t fvry|tk(r |jStd|z)NrFeature '%s' not recognized) rr:r r?rrrrr>SAXNotRecognizedExceptionr"names r getFeaturezExpatParser.getFeature|sn % %## # - -??$. . (*>022 ) )%% %'(E(LMMrcj|jr td|tk(r||_y|tk(r||_y|t k(r|r|ji|_yd|_yy|tk(r|r tdy|tk(r|r tdy|tk(r|r tdytd|z)Nz!Cannot set features while parsingz!expat does not support validationz/expat does not read external parameter entitiesz(expat does not report namespace prefixesrR) r<SAXNotSupportedExceptionrr:rr>r r?rrrrS)r"rUstates r setFeaturezExpatParser.setFeatures ==*+NO O % %$D  ) )!&D  - -??*&(DO"&+' '.799) ).EGG/ /.>@@,-46 6rc<|tjk(r |jS|tk(r |jS|t k(rR|j r;t|j dr|j jStdtdtd|z)NGetInputContextz=This version of expat does not support getting the XML stringz.XML string cannot be returned when not parsingProperty '%s' not recognized) rproperty_lexical_handlerr;r r?r r&hasattrr\rSrXrTs r getPropertyzExpatParser.getPropertys 733 3)) ) , ,?? " ( (||4<<):;<<77993*++/DFF'(F(MNNrc|tjk(r%||_|jr|j yy|t k(r||_y|tk(rtd|ztd|z)NzProperty '%s' cannot be setr]) rr^r;r<_reset_lex_handler_propr r?r rXrS)r"rUvalues r setPropertyzExpatParser.setPropertys{ 733 3%*D "}},,. , ,#DO ( (*+H+/,01 1,,J,0-12 2rc|js1|jd|_|jj |jj ||y#t j$rO}tt j|j||}|jj|Yd}~yd}~wwxYw)NT) r<rDrE startDocumentr&Parser errorSAXParseException ErrorStringcode _err_handler fatalError)r"dataisFinaleexcs rfeedzExpatParser.feeds}} JJL DM    , , . . LL  tW -{{ .#E$5$5aff$=q$GC    ( ( - - .sAB>/AB99B>c|jy|jj} |jjd|jjdd|jj|y#tj $rO}t t j|j||}|jj|Yd}~yd}~wwxYw#|jj|wxYw)NFr) r&GetReparseDeferralEnabledSetReparseDeferralEnabledrgr rhrirjrkrlrm)r" was_enabledrprqs rflushzExpatParser.flushs <<  ll<<>  @ LL 2 25 9 LL  sE * LL 2 2; ? {{ .#E$5$5aff$=q$GC    ( ( - - . LL 2 2; ?s*7A<<CACC!CC!!C>c|j} |j}||j|j}||jyy#|j}||jwwxYwr)r/getCharacterStreamclose getByteStream)r"rJfiles rrHzExpatParser._close_sourcesu ,,.D '')D  '')D  s "A%A9c|js&|jt|jtry |j dd|j j d|_d|_d|_|jGt}|jj|_|jj|_ ||_|jy#d|_|jGt}|jj|_|jj|_ ||_|jwxYw)NrT)roF) r=r& isinstancerrrrE endDocumentr<r'r,rHr!s rrzzExpatParser.closes   $,,"6 t||] 3  ! IIc4I (    * * ,!DMDL!DM||'&+/<<+I+I()-)E)E&%    "DM||'&+/<<+I+I()-)E)E&%    s ;CA,Ec|jj|j_|jj|j_yr)rEprocessingInstructionr&ProcessingInstructionHandler charactersCharacterDataHandlerr"s rrPzExpatParser._reset_cont_handlers5$($6$6$L$L 1,0,>,>,I,I )rc*|j}|j}|$d|_d|_d|_d|_d|_y|j|_|j|_|j|_|j|_|j|_yr) r;r&CommentHandlerStartCdataSectionHandlerEndCdataSectionHandlerStartDoctypeDeclHandlerEndDoctypeDeclHandlercomment startCDATAendCDATAstart_doctype_declendDTD)r"lexr#s rrbz#ExpatParser._reset_lex_handler_prop s$$ ;$(F !.2F +,0F )-1F *+/F ($'KKF !.1nnF +,/LLF )-1-D-DF *+.::F (rcJ|jrtj|jj d|j |_d|j _|j|j _ |j|j _ nttj|jj |j |_|j|j _ |j|j _ |j|j|j _|j"|j _|j&|j _|j*|j _d|_|j0r|j3|j4|j _ |j8|j _|j j?tj@d|_!g|_"y#t<$rYCwxYw)N )internr+F)#r:r r r/ getEncodingr?r&namespace_prefixesstart_element_nsStartElementHandlerend_element_nsEndElementHandler start_element end_elementrPunparsed_entity_declUnparsedEntityDeclHandler notation_declNotationDeclHandlerstart_namespace_declStartNamespaceDeclHandlerend_namespace_declEndNamespaceDeclHandler_decl_handler_propr;rbexternal_entity_refExternalEntityRefHandlerskipped_entity_handlerSkippedEntityHandlerAttributeErrorSetParamEntityParsing*XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONEr<r=rs rrDzExpatParser.resets    --dll.F.F.H#59__FDL./DLL +/3/D/DDLL ,-1-@-@DLL * --dll.F.F.H7;HDL/3/A/ADLL ,-1-=-=DLL *   "151J1J .+/+=+= (151J1J ./3/F/F ,"&  ! !  ( ( *150H0H - 040K0KDLL - **  < < >    sH H"!H"cH|jy|jjSr)r&r'rs rr(zExpatParser.getColumnNumberCs << ||---rcH|jy|jjSr*)r&r,rs rr-zExpatParser.getLineNumberHs << ||+++rc6|jjSr)r/r0rs rr0zExpatParser.getPublicIdM||''))rc6|jjSr)r/r3rs rr3zExpatParser.getSystemIdPrrcN|jj|t|yr)rE startElementAttributesImpl)r"rUattrss rrzExpatParser.start_elementTs ''nU.CDrc:|jj|yr)rE endElementrTs rrzExpatParser.end_elementW %%d+rc|j}t|dk(rd|f}n$t|dk(r |d|df}n t|}i}i}|jD]c\}}|j}t|} | dk(r|} d|f} n-| dk(r|dd|d} |d|df} n|d} t|} ||| <| || <e|jj |dt ||y)Nr+r:)splitlentupleitemsrEstartElementNSAttributesNSImpl) r"rUrpairnewattrsqnamesanamercpartslengthqnameapairs rrzExpatParser.start_element_nsZs zz| t9>$$rc:|jj|yr)rEr)r"rns rcharacter_datazExpatParser.character_datarrc<|jj||yr)rEstartPrefixMapping)r"prefixuris rrz ExpatParser.start_namespace_decls --fc:rc:|jj|yr)rEendPrefixMapping)r"rs rrzExpatParser.end_namespace_decls ++F3rc>|jj|||yr)r;startDTD)r"rUsysidpubidhas_internal_subsets rrzExpatParser.start_doctype_decls ''eU;rc@|jj||||yr) _dtd_handlerunparsedEntityDecl)r"rUbaserr notation_names rrz ExpatParser.unparsed_entity_decls ,,T5%Orc>|jj|||yr)r notationDecl)r"rUrrrs rrzExpatParser.notation_decls &&tUE:rc |jsy|jj||}tj||j j xsd}|jj|j|j f|jj||_ ||_ tjj|||jd\|_ |_|jd=y#YyxYw)Nr+r)r> _ent_handler resolveEntityrrCr/r3r=appendr&ExternalEntityParserCreaterr8rG)r"contextrrrrJs rrzExpatParser.external_entity_refs!!""00>..v/3||/G/G/I02/13 !!4<<">?||>>wG     ' ' - -dF ;(,'9'9"'=$t|   r "  s 5 C??DcH|rd|z}|jj|y)N%)rE skippedEntity)r"rUis_pes rrz"ExpatParser.skipped_entity_handlers" t8D ((.rN)ri)F)$rrrr4r$rGrMrOrVrZr`rdrrrwrHrzrPrbrDr(r-r0r3rrrrrrrrrrrrrrrrr6r6Qs.  7 ' N6<O$ 2 ." @ !*J 6 # N. , **E, ND 4?,;4<P;,/rr6ct|i|Sr)r6)argskwargss r create_parserrs  ' ''r__main__z:http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml)+r4versionxml.sax._exceptionsxml.sax.handlerrrrrrr r r xml.parsersr r_SAXReaderNotAvailable ImportErrorxml.saxrrrrr_weakrefweakrefproxyrrLocatorrr8r6rrxml.sax.saxutilsxmlprOsax XMLGeneratorsetErrorHandler ErrorHandlerrGrrrrsT !B6F4HA! 5. )#$94@@00))--  }}H  ,9$$,Hg/)--y/@/@g/V (  zA((5578cgg**,-GG HI a =  5t <<=sE*EEEE