U e5dÝ.ã@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)%ÚPullDOMNcCszddlm}||_ddg|_|j|_g|_|jj|_z|jj|_Wnt k rVYnX|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ú'/usr/lib64/python3.8/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?r@rDrHrLrMrOr/rUrVrrrrr 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)rWrXrYr]r^r_rrrrrZÄsrZc@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)rrbrcrdrrrrÍs  zDOMEventStream.__init__cCs.tƒ|_|j tjjjd¡|j |j¡dSr<) r ÚpulldomrcZ setFeaturer ÚsaxZhandlerZfeature_namespacesZsetContentHandlerrTrrrrgÕszDOMEventStream.resetcCs0ddl}|jdtdd�| ¡}|r(|St‚dS)Nrz[DOMEventStream's __getitem__ method ignores 'pos' parameter. Use iterator protocol instead.é)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarningrfÚ IndexError)rÚposrlÚrcrrrÚ __getitem__ÛsüzDOMEventStream.__getitem__cCs| ¡}|r|St‚dSr)rfÚ StopIteration©rrqrrrÚ__next__èszDOMEventStream.__next__cCs|SrrrTrrrÚ__iter__îszDOMEventStream.__iter__cCsl| ¡}|g}|rh|\}}||kr&dS|tkr<|d |¡|tkrP| |¡n|tkr^|d=| ¡}qdSr)rfrÚ appendChildrr)rr9rCÚparentsÚtokenZcur_noderrrÚ expandNodeñs zDOMEventStream.expandNodecCs~|jjds|jj|j_|jjdsR|j |j¡}|sD|j ¡dS|j |¡q|jjdd}|jjdd|jjd<|S©Nr+r) rhrrrbÚreadrdrcÚclosera)rÚbufrqrrrrfs    zDOMEventStream.getEventcCs|j |j¡|j|_| ¡Sr)rcÚparserbÚ_emitrfrTrrrreszDOMEventStream._slurpcCs,|jjdd}|jjdd|jjd<|Sr{)rhrrtrrrr€szDOMEventStream._emitcCs|j ¡|`d|_d|_dSr)rhrVrcrbrTrrrrV!s zDOMEventStream.clearN) rWrXrYrrgrrrurvrzrfrer€rVrrrrr`Ìs  r`c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚSAX2DOMcCs2t ||||¡|jd}|jd}| |¡dS©Nr éþÿÿÿ)r r;rrw)rr5r6r7ÚcurNodeÚ parentNoderrrr;*s  zSAX2DOM.startElementNScCs0t |||¡|jd}|jd}| |¡dSr‚)r r?rrw)rr5r7r„r…rrrr?0s  zSAX2DOM.startElementcCs4t |||¡|jdd}|jd}| |¡dS©Nrr+r )r rHrrrw)rrFrGr9r…rrrrH6s zSAX2DOM.processingInstructioncCs2t ||¡|jdd}|jd}| |¡dSr†)r rLrrrw©rrKr9r…rrrrL<s  zSAX2DOM.ignorableWhitespacecCs2t ||¡|jdd}|jd}| |¡dSr†)r rMrrrwr‡rrrrMBs  zSAX2DOM.charactersN)rWrXrYr;r?rHrLrMrrrrr�(s r�iì?cCs@|dkr t}t|tƒr"t|dƒ}n|}|s4tj ¡}t|||ƒS)NÚrb)Údefault_bufsizeÚ isinstanceÚstrÚopenr riÚ make_parserr`)Zstream_or_stringrcrdrbrrrrKs   rcCs6ddlm}t|ƒ}||ƒ}|s*tj ¡}t|||ƒS)Nr)ÚStringIO)ÚiorŽÚlenr rir�r`)ÚstringrcrŽrdr~rrrÚ parseStringVs   r’)NN)N)Zxml.saxr Zxml.sax.handlerrrrrrrrr riZContentHandlerr rZr`r�r‰rr’rrrrÚs"8\!