o ?OgS?@s dZddlTddlmZmZddlmZddlmZmZddlmZddlm Z m Z ddl Z e j dd d kr=e d d[ zdd lmZWn eyRe d dweeds]e d dddlmZmZmZejZejZzddlZWn eyddZYn wddlZejZ[[GdddZGdddejZGdddejejZ ddZ!e"dkrddl#Z$e!Z%e%&e$j'j(e%)e$j'*e%+ddSdS)z0.20)*)feature_validationfeature_namespaces)feature_namespace_prefixes)feature_external_gesfeature_external_pes)feature_string_interning)property_xml_stringproperty_interning_dictNjavazexpat not available in Java)expatzexpat not supported ParserCreate) xmlreadersaxutilshandlercCs|SN)orr:/opt/alt/python310/lib64/python3.10/xml/sax/expatreader.py_mkproxy'src@s eZdZdS) _ClosedParserN)__name__ __module__ __qualname__rrrrr.src@s6eZdZ ddZddZddZddZd d Zd S) ExpatLocatorcCst||_dSr)r_refselfparserrrr__init__9zExpatLocator.__init__cCs|j}|jdur dS|jjSr)r_parserErrorColumnNumberrrrrgetColumnNumber< zExpatLocator.getColumnNumbercCs|j}|jdur dS|jjSN)rr"ErrorLineNumberrrrr getLineNumberBr%zExpatLocator.getLineNumbercC|j}|dur dS|jSr)r_source getPublicIdrrrrr,H zExpatLocator.getPublicIdcCr*r)rr+ getSystemIdrrrrr.Nr-zExpatLocator.getSystemIdN)rrrr r$r)r,r.rrrrr3s rc@seZdZ dEddZddZddZd d Zd d Zd dZddZ ddZ dFddZ ddZ ddZ ddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z d@dAZ!dBdCZ"dDS)G ExpatParserrcCsFtj||t|_d|_||_d|_d|_g|_ d|_ d|_ dS)NFr) rIncrementalParserr Z InputSourcer+r" _namespaces_lex_handler_prop_parsing _entity_stack _external_ges _interning)rZnamespaceHandlingbufsizerrrr Zs  zExpatParser.__init__cCsP t|}||_z||jt|tj ||WdS| r) rprepare_input_sourcer+reset _cont_handlerZsetDocumentLocatorrrr1parse _close_sourcersourcerrrr<gs zExpatParser.parsecCs$|dur|j|dSdSr)r.r"ZSetBaser>rrr prepareParserws zExpatParser.prepareParsercCs$tj|||jr|dSdSr)rr1setContentHandlerr4_reset_cont_handler)rrrrrrA}s zExpatParser.setContentHandlercCsL|tkr|jS|tkr|jduS|tttfvrdS|tkr |jSt d|)NrFeature '%s' not recognized) rr2rr7rrrrr6SAXNotRecognizedExceptionrnamerrr getFeatures  zExpatParser.getFeaturecCs|jrtd|tkr||_dS|tkr||_dS|tkr0|r+|jdur)i|_dSdSd|_dS|tkr<|r:tddS|t krH|rFtddS|t krT|rRtddSt d|)Nz!Cannot set features while parsingz!expat does not support validationz/expat does not read external parameter entitiesz(expat does not report namespace prefixesrC) r4SAXNotSupportedExceptionrr2rr6rr7rrrrD)rrFstaterrr setFeaturesB     zExpatParser.setFeaturecCs^|tjkr|jS|tkr|jS|tkr)|jr%t|jdr!|jSt dt dt d|)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_handlerr3r r7r r"hasattrrKrDrHrErrr getPropertys    zExpatParser.getPropertycCsX|tjkr||_|jr|dSdS|tkr||_dS|tkr&td|t d|)NzProperty '%s' cannot be setrL) rrMr3r4_reset_lex_handler_propr r7r rHrD)rrFvaluerrr setPropertys   zExpatParser.setPropertyFc Cs||js|d|_|jz |j||WdStjy=}ztt |j ||}|j |WYd}~dSd}~ww)NT) r4r:r;Z startDocumentr"Parser errorSAXParseException ErrorStringcode _err_handler fatalError)rdataisFinaleexcrrrfeeds zExpatParser.feedc Cs|jdurdS|j}zEz|jd|jddWn#tjy?}ztt|j||}|j |WYd}~nd}~wwW|j|dSW|j|dS|j|w)NF) r"ZGetReparseDeferralEnabledZSetReparseDeferralEnabledrSr rTrUrVrWrXrY)rZ was_enabledr\r]rrrflushs   zExpatParser.flushcCs^|j}z|}|dur|W|}|dur|dSdS|}|dur.|wwr)r+ZgetCharacterStreamcloseZ getByteStream)rr?filerrrr=s  zExpatParser._close_sourcecCs|js|jdust|jtrdSz1|jddd|jd|_d|_Wd|_|jdur            zExpatParser.resetcCs|jdurdS|jjSr)r"r#rfrrrr$I zExpatParser.getColumnNumbercCs|jdurdS|jjSr&)r"r(rfrrrr)NruzExpatParser.getLineNumbercC |jSr)r+r,rfrrrr,S zExpatParser.getPublicIdcCrvr)r+r.rfrrrr.VrwzExpatParser.getSystemIdcCs|j|t|dSr)r;Z startElementAttributesImpl)rrFattrsrrrrlZzExpatParser.start_elementcC|j|dSr)r;Z endElementrErrrrm]zExpatParser.end_elementc Cs|}t|dkrd|f}nt|dkr|d|df}nt|}i}i}|D]>\}}|}t|} | dkrA|} d|f} n| dkrXd|d|df} |d|df} n|d} t|} ||| <| || <q*|j|dt||dS)Nr'rz%s:%s)splitlentupleitemsr;ZstartElementNSAttributesNSImpl) rrFrypairZnewattrsZqnamesZanamerQpartsZlengthZqnameZapairrrrrj`s0      zExpatParser.start_element_nscCsV|}t|dkrd|f}nt|dkr|d|df}nt|}|j|ddS)Nr'r}r)rrrr;Z endElementNS)rrFrrrrrks   zExpatParser.end_element_nscC|j||dSr)r;rd)rtargetrZrrrprocessing_instructionz"ExpatParser.processing_instructioncCr{r)r;re)rrZrrrcharacter_datar|zExpatParser.character_datacCrr)r;ZstartPrefixMapping)rprefixZurirrrrprz ExpatParser.start_namespace_declcCr{r)r;ZendPrefixMapping)rrrrrrqr|zExpatParser.end_namespace_declcCs|j|||dSr)r3ZstartDTD)rrFsysidpubidZhas_internal_subsetrrrrgzExpatParser.start_doctype_declcCs|j||||dSr) _dtd_handlerZunparsedEntityDecl)rrFbaserrZ notation_namerrrrnrzz ExpatParser.unparsed_entity_declcCs|j|||dSr)rZ notationDecl)rrFrrrrrrrorzExpatParser.notation_declcCs|jsdS|j||}t||jpd}|j|j |jf|j ||_ ||_z t j ||WnYdS|jd\|_ |_|jd=dS)Nr'r)r6Z _ent_handlerZ resolveEntityrr9r+r.r5appendr"ZExternalEntityParserCreaterr1r<)rcontextrrrr?rrrrrs" zExpatParser.external_entity_refcCs|rd|}|j|dS)N%)r;Z skippedEntity)rrFZis_perrrrssz"ExpatParser.skipped_entity_handlerN)rr0)F)#rrrr r<r@rArGrJrOrRr^r`r=rarBrPr:r$r)r,r.rlrmrjrkrrrprqrgrnrorrrsrrrrr/WsD     '"  r/cOst|i|Sr)r/)argskwargsrrr create_parserr!r__main__z:http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml),versionZxml.sax._exceptionsZxml.sax.handlerrrrrrrr r sysplatformZSAXReaderNotAvailableZ xml.parsersr ImportErrorrNZxml.saxrrrrxr_weakrefrweakrefproxyrZLocatorrr1r/rrZxml.sax.saxutilsZxmlprAZsaxZ XMLGeneratorZsetErrorHandlerZ ErrorHandlerr<rrrrsV          $m