a €šçdÝ.ã@sŒddlZddlZdZdZdZdZdZdZdZ d Z Gd d „d ej j ƒZ Gd d „d ƒZGdd„dƒZGdd„de ƒZdZddd„Zddd„ZdS)éNÚ START_ELEMENTÚ END_ELEMENTÚCOMMENTÚSTART_DOCUMENTÚ END_DOCUMENTÚPROCESSING_INSTRUCTIONÚIGNORABLE_WHITESPACEÚ CHARACTERSc@sžeZdZdZdZd$dd„Zdd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„ZdS)%ÚPullDOMNcCsxddlm}||_ddg|_|j|_g|_|jj|_z|jj|_Wnt yTYn0|dig|_ |j d|_ g|_ dS)Nr)Ú XML_NAMESPACEÚxmléÿÿÿÿ) Zxml.domr ÚdocumentFactoryÚ firstEventÚ lastEventÚ elementStackÚappendÚpushÚpopÚAttributeErrorÚ _ns_contextsÚ_current_contextÚpending_events)Úselfrr ©rú4/opt/alt/python39/lib64/python3.9/xml/dom/pulldom.pyÚ__init__s      zPullDOM.__init__cCs|jd}|jd=|S©Nr )r)rÚresultrrrr!s z PullDOM.popcCs ||_dS©N)Ú_locator)rZlocatorrrrÚsetDocumentLocator&szPullDOM.setDocumentLocatorcCsHt|dƒsg|_|j |pd|f¡|j |j ¡¡|pr?rCrGrKrLrNr.rTrUrrrrr s& 9  r c@s$eZdZdd„Zdd„Zdd„ZdS)Ú ErrorHandlercCs t|ƒdSr)Úprint©rZ exceptionrrrÚwarningÅszErrorHandler.warningcCs|‚dSrrr[rrrÚerrorÇszErrorHandler.errorcCs|‚dSrrr[rrrÚ fatalErrorÉszErrorHandler.fatalErrorN)rVrWrXr\r]r^rrrrrYÄsrYc@s\eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dS)ÚDOMEventStreamcCs2||_||_||_t|jdƒs&|j|_| ¡dS)NÚfeed)ÚstreamÚparserÚbufsizer$Ú_slurpÚgetEventÚreset)rrarbrcrrrrÍs  zDOMEventStream.__init__cCs.tƒ|_|j tjjjd¡|j |j¡dSr;) r ÚpulldomrbZ setFeaturer ÚsaxZhandlerZfeature_namespacesZsetContentHandlerrSrrrrfÕszDOMEventStream.resetcCs0ddl}|jdtdd| ¡}|r(|St‚dS)Nrz[DOMEventStream's __getitem__ method ignores 'pos' parameter. Use iterator protocol instead.é)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarningreÚ IndexError)rÚposrkÚrcrrrÚ __getitem__ÛsüzDOMEventStream.__getitem__cCs| ¡}|r|St‚dSr)reÚ StopIteration©rrprrrÚ__next__èszDOMEventStream.__next__cCs|SrrrSrrrÚ__iter__îszDOMEventStream.__iter__cCsl| ¡}|g}|rh|\}}||ur&dS|tkr<|d |¡|tkrP| |¡n|tkr^|d=| ¡}qdSr)rerÚ appendChildrr)rr8rBÚparentsÚtokenZcur_noderrrÚ expandNodeñs zDOMEventStream.expandNodecCs~|jjds|jj|j_|jjdsR|j |j¡}|sD|j ¡dS|j |¡q|jjdd}|jjdd|jjd<|S)Nr+r) rgrrraÚreadrcrbÚcloser`)rÚbufrprrrres    zDOMEventStream.getEventcCs|j |j¡|j|_| ¡S)zå Fallback replacement for getEvent() using the standard SAX2 interface, which means we slurp the SAX events into memory (no performance gain, but we are compatible to all SAX parsers). )rbÚparseraÚ_emitrerSrrrrdszDOMEventStream._slurpcCs,|jjdd}|jjdd|jjd<|S)zn Fallback replacement for getEvent() that emits the events that _slurp() read previously. r+r)rgrrsrrrr~szDOMEventStream._emitcCs|j ¡|`d|_d|_dS)z+clear(): Explicitly release parsing objectsN)rgrUrbrarSrrrrU!s zDOMEventStream.clearN) rVrWrXrrfrqrtruryrerdr~rUrrrrr_Ìs  r_c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚSAX2DOMcCs2t ||||¡|jd}|jd}| |¡dS©Nr éþÿÿÿ)r r:rrv)rr4r5r6ÚcurNodeÚ parentNoderrrr:*s  zSAX2DOM.startElementNScCs0t |||¡|jd}|jd}| |¡dSr€)r r>rrv)rr4r6r‚rƒrrrr>0s  zSAX2DOM.startElementcCs4t |||¡|jdd}|jd}| |¡dS©Nrr+r )r rGrrrv)rrErFr8rƒrrrrG6s zSAX2DOM.processingInstructioncCs2t ||¡|jdd}|jd}| |¡dSr„)r rKrrrv©rrJr8rƒrrrrK<s  zSAX2DOM.ignorableWhitespacecCs2t ||¡|jdd}|jd}| |¡dSr„)r rLrrrvr…rrrrLBs  zSAX2DOM.charactersN)rVrWrXr:r>rGrKrLrrrrr(s riì?cCs@|dur t}t|tƒr"t|dƒ}n|}|s4tj ¡}t|||ƒS)NÚrb)Údefault_bufsizeÚ isinstanceÚstrÚopenr rhÚ make_parserr_)Zstream_or_stringrbrcrarrrr}Ks   r}cCs6ddlm}t|ƒ}||ƒ}|s*tj ¡}t|||ƒS)Nr)ÚStringIO)ÚiorŒÚlenr rhr‹r_)ÚstringrbrŒrcr|rrrÚ parseStringVs   r)NN)N)Zxml.saxr Zxml.sax.handlerrrrrrrrr rhZContentHandlerr rYr_rr‡r}rrrrrÚs"8\!