]-@sddlZddlZdZdZdZdZdZdZdZ d Z Gd d d ej j Z Gd d d ZGdddZGddde ZdZddddZdddZdS)N START_ELEMENT END_ELEMENTCOMMENTSTART_DOCUMENT END_DOCUMENTPROCESSING_INSTRUCTIONIGNORABLE_WHITESPACE CHARACTERSc@seZdZdZdZdddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZddZddZd d!Zd"d#ZdS)$PullDOMNc Csddlm}||_ddg|_|j|_g|_|jj|_y|jj|_Wnt k rsYnX|dig|_ |j d|_ g|_ dS)Nr) XML_NAMESPACExml) Zxml.domr documentFactory firstEvent lastEvent elementStackappendpushpopAttributeError _ns_contexts_current_contextpending_events)selfrr r,/opt/alt/python35/lib64/python3.5/pulldom.py__init__s    zPullDOM.__init__cCs|jd}|jd=|S)Nr rr)r)rresultrrrr!s  z PullDOM.popcCs ||_dS)N)_locator)rZlocatorrrrsetDocumentLocator&szPullDOM.setDocumentLocatorcCsdt|dsg|_|jj|p*d|f|jj|jj|pVd|j|rrrprocessingInstructions  zPullDOM.processingInstructioncCs?|jj|}t|fdg|jd<|jd|_dS)Nr )r+createTextNoderr)rcharsr6rrrignorableWhitespaceszPullDOM.ignorableWhitespacecCs?|jj|}t|fdg|jd<|jd|_dS)Nr )r+rDr r)rrEr6rrr charactersszPullDOM.characterscCs4|jdkr0ddl}|jjjj|_dS)Nr)rZxml.dom.minidomZdomZminidomZDocumentimplementation)rr rrr startDocuments zPullDOM.startDocumentc Cs8|jj||d}||_t|fdg|jd<|jd|_|j|x|jD]}|ddtkr|d\}}}|jj||}t|f|dparentstokenZcur_noderrr expandNodes        zDOMEventStream.expandNodecCs|jjds"|jj|j_xP|jjdst|jj|j}|sa|jjdS|jj|q%W|jjdd}|jjdd|jjd<|S)Nr r) rarrr[readr]r\closerZ)rbufrfrrrr_s zDOMEventStream.getEventcCs)|jj|j|j|_|jS)N)r\parser[_emitr_)rrrrr^s zDOMEventStream._slurpcCs6|jjdd}|jjdd|jjd<|S)Nr r)rar)rrfrrrrsszDOMEventStream._emitcCs)|jj|`d|_d|_dS)N)rarOr\r[)rrrrrOs  zDOMEventStream.clearN) rPrQrRrr`rgrirjrnr_r^rsrOrrrrrYs         rYc@sLeZdZddZddZddZddZd d Zd S) SAX2DOMcCsAtj|||||jd}|jd}|j|dS)Nr r)r r8rrk)rr2r3r4curNode parentNoderrrr8#s  zSAX2DOM.startElementNScCs>tj||||jd}|jd}|j|dS)Nr rurrv)r r:rrk)rr2r4rwrxrrrr:)s  zSAX2DOM.startElementcCsBtj||||jdd}|jd}|j|dS)Nrr r)r rCrrrk)rrArBr6rxrrrrC/s zSAX2DOM.processingInstructioncCs?tj|||jdd}|jd}|j|dS)Nrr r)r rFrrrk)rrEr6rxrrrrF5s zSAX2DOM.ignorableWhitespacecCs?tj|||jdd}|jd}|j|dS)Nrr r)r rGrrrk)rrEr6rxrrrrG;s zSAX2DOM.charactersN)rPrQrRr8r:rCrFrGrrrrrt!s     rtrucCs^|dkrt}t|tr3t|d}n|}|sNtjj}t|||S)Nrb)default_bufsize isinstancestropenr rb make_parserrY)Zstream_or_stringr\r]r[rrrrrDs rrcCsMddlm}t|}||}|s=tjj}t|||S)Nr)StringIO)iorlenr rbrrY)stringr\rr]rqrrr parseStringOs   ri@i?)Zxml.saxr Zxml.sax.handlerrrrrrrrr rbZContentHandlerr rSrYrtr|rrrrrrrs  U!