B $@sRdddddddddd d d d d dddddddddgZdZddlZddlZddlZddlZddlZddlZddlZddl m Z Gdd d e Z ddZ GdddZifdd ZdRd dZdSd!d ZeZGd"d d ZGd#ddZejd$d%ZdTd&d'Zd(d)Zd*Zy eeZWnek r&YnXd+d,Zd-d.Zeeed/Zd0dZd1d2d3d4d5d6d7d8Z e e_ d9d:Z!d;d<Z"d=d>Z#d?d@Z$dUdAdBdCdZ%GdDdEdEej&Z'dVdAdBdFdZ(dGdZ)dWdHdZ*dXdIdZ+GdJddZ,dYdKdZ-dZdLdZ.e-Z/d[dMdZ0GdNddZ1dOgZ2GdPddZ3yeZ4ddQl5TWne6k rLYnXdS)\CommentdumpElement ElementTree fromstringfromstringlist iselement iterparseparse ParseErrorPIProcessingInstructionQName SubElementtostring tostringlist TreeBuilderVERSIONXMLXMLID XMLParser XMLPullParserregister_namespacez1.3.0N) ElementPathc@s eZdZdS)r N)__name__ __module__ __qualname__rr8/opt/alt/python37/lib/python3.7/xml/etree/ElementTree.pyr is cCs t|dS)Ntag)hasattr)elementrrrrwsc@seZdZdZdZdZdZifddZddZddZ dd Z d d Z d d Z ddZ ddZddZddZddZddZddZddZddZd8d d!Zd9d"d#Zd:d$d%Zd;d&d'Zd(d)Zdd4d5Z d6d7Z!dS)?rNcKsDt|tstd|jjf|}||||_||_g|_ dS)Nzattrib must be dict, not %s) isinstancedict TypeError __class__rcopyupdater attrib _children)selfr r)extrarrr__init__s  zElement.__init__cCsd|jj|jt|fS)Nz<%s %r at %#x>)r&rr id)r+rrr__repr__szElement.__repr__cCs |||S)N)r&)r+r r)rrr makeelements zElement.makeelementcCs0||j|j}|j|_|j|_||dd<|S)N)r0r r)texttail)r+elemrrrr's  z Element.copycCs t|jS)N)lenr*)r+rrr__len__szElement.__len__cCstjdtddt|jdkS)NzyThe behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.) stacklevelr)warningswarn FutureWarningr4r*)r+rrr__bool__s zElement.__bool__cCs |j|S)N)r*)r+indexrrr __getitem__szElement.__getitem__cCs||j|<dS)N)r*)r+r<r"rrr __setitem__szElement.__setitem__cCs |j|=dS)N)r*)r+r<rrr __delitem__szElement.__delitem__cCs|||j|dS)N)_assert_is_elementr*append)r+ subelementrrrrAs zElement.appendcCs(x|D]}||qW|j|dS)N)r@r*extend)r+elementsr"rrrrCs zElement.extendcCs|||j||dS)N)r@r*insert)r+r<rBrrrrEs zElement.insertcCs t|tstdt|jdS)Nzexpected an Element, not %s)r# _Element_Pyr%typer)r+errrr@s zElement._assert_is_elementcCs|j|dS)N)r*remove)r+rBrrrrIs zElement.removecCstjdtdd|jS)NzaThis method will be removed in future versions. Use 'list(elem)' or iteration over elem instead.r6)r7)r8r9DeprecationWarningr*)r+rrr getchildrens zElement.getchildrencCst|||S)N)rfind)r+path namespacesrrrrL"s z Element.findcCst||||S)N)rfindtext)r+rMdefaultrNrrrrO-s zElement.findtextcCst|||S)N)rfindall)r+rMrNrrrrQ;s zElement.findallcCst|||S)N)riterfind)r+rMrNrrrrRFs zElement.iterfindcCs |jg|_d|_|_dS)N)r)clearr*r1r2)r+rrrrSQs z Element.clearcCs|j||S)N)r)get)r+keyrPrrrrT\s z Element.getcCs||j|<dS)N)r))r+rUvaluerrrsetisz Element.setcCs |jS)N)r)keys)r+rrrrXssz Element.keyscCs |jS)N)r)items)r+rrrrY|s z Element.itemsccsH|dkr d}|dks|j|kr$|Vx|jD]}||EdHq,WdS)N*)r r*iter)r+r rHrrrr[s  z Element.itercCstjdtddt||S)NzbThis method will be removed in future versions. Use 'elem.iter()' or 'list(elem.iter())' instead.r6)r7)r8r9PendingDeprecationWarninglistr[)r+r rrr getiterators zElement.getiteratorccs\|j}t|ts|dk rdS|j}|r,|Vx*|D]"}|EdH|j}|r2|Vq2WdS)N)r r#strr1itertextr2)r+r trHrrrr`s zElement.itertext)N)NN)N)N)N)N)N)"rrrr r)r1r2r-r/r0r'r5r;r=r>r?rArCrEr@rIrKrLrOrQrRrSrTrWrXrYr[r^r`rrrrr|s>            cKs,|}|||||}|||S)N)r'r(r0rA)parentr r)r,r"rrrrs    cCstt}||_|S)N)rrr1)r1r"rrrrs cCs&tt}||_|r"|jd||_|S)N )rr r1)targetr1r"rrrr s c@sVeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ dS)r NcCs|rd||f}||_dS)Nz{%s}%s)r1)r+Z text_or_urir rrrr-s zQName.__init__cCs|jS)N)r1)r+rrr__str__sz QName.__str__cCsd|jj|jfS)Nz<%s %r>)r&rr1)r+rrrr/szQName.__repr__cCs t|jS)N)hashr1)r+rrr__hash__szQName.__hash__cCs t|tr|j|jkS|j|kS)N)r#r r1)r+otherrrr__le__s  z QName.__le__cCs t|tr|j|jkS|j|kS)N)r#r r1)r+rhrrr__lt__ s  z QName.__lt__cCs t|tr|j|jkS|j|kS)N)r#r r1)r+rhrrr__ge__s  z QName.__ge__cCs t|tr|j|jkS|j|kS)N)r#r r1)r+rhrrr__gt__s  z QName.__gt__cCs t|tr|j|jkS|j|kS)N)r#r r1)r+rhrrr__eq__s  z QName.__eq__)N) rrrr-rer/rgrirjrkrlrmrrrrr s c@seZdZdddZddZddZddd Zdd d Zdd d Zd ddZ d!ddZ d"ddZ d#ddZ d$ddddZ ddZdS)%rNcCs||_|r||dS)N)_rootr )r+r"filerrrr-*szElementTree.__init__cCs|jS)N)rn)r+rrrgetroot0szElementTree.getrootcCs ||_dS)N)rn)r+r"rrr_setroot4szElementTree._setrootcCsd}t|dst|d}d}zZ|dkrHt}t|drH|||_|jSx|d}|sZP||qJW||_|jS|r|XdS)NFreadrbT _parse_wholei)r!openrrtrnrrfeedclose)r+sourceparser close_sourcedatarrrr >s&       zElementTree.parsecCs |j|S)N)rnr[)r+r rrrr[cs zElementTree.itercCstjdtddt||S)NzbThis method will be removed in future versions. Use 'tree.iter()' or 'list(tree.iter())' instead.r6)r7)r8r9r\r]r[)r+r rrrr^ps zElementTree.getiteratorcCs:|dddkr,d|}tjd|tdd|j||S)Nr/.zThis search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to %rr6)r7)r8r9r:rnrL)r+rMrNrrrrLys  zElementTree.findcCs<|dddkr,d|}tjd|tdd|j|||S)Nrr|r}zThis search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to %rr6)r7)r8r9r:rnrO)r+rMrPrNrrrrOs  zElementTree.findtextcCs:|dddkr,d|}tjd|tdd|j||S)Nrr|r}zThis search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to %rr6)r7)r8r9r:rnrQ)r+rMrNrrrrQs  zElementTree.findallcCs:|dddkr,d|}tjd|tdd|j||S)Nrr|r}zThis search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to %rr6)r7)r8r9r:rnrR)r+rMrNrrrrRs  zElementTree.iterfindT)short_empty_elementsc Cs|s d}n|tkrtd||s4|dkr0d}nd}|}t||}|dkr|sd|dkr|dkr|} |dkrddl} | } |d | f|d krt||jn,t|j|\} } t|} | ||j| | |d WdQRXdS) Nxmlzunknown method %rc14nzutf-8zus-ascii)zutf-8zus-asciiunicoderrz$ r1)r~) _serialize ValueErrorlower _get_writerlocalegetpreferredencoding_serialize_textrn _namespaces)r+file_or_filenameencodingZxml_declarationdefault_namespacemethodr~Z enc_lowerwriteZdeclared_encodingrqnamesrNZ serializerrrrs2     zElementTree.writecCs|j|ddS)Nr)r)r)r+rorrr write_c14n szElementTree.write_c14n)NN)N)N)N)N)NN)N)N)NNNN)rrrr-rprqr r[r^rLrOrQrRrrrrrrrs   %    5c cs"y |j}WnPtk rZ|dkr.t|d}nt|d|dd}||jVWdQRXYnX|dkrl|Vnt}t|tjr|}nft|tjrt |}| |j nBt}dd|_ ||_y|j |_ |j|_Wntk rYnXtj||ddd}| |j |jVWdQRXdS) Nrwxmlcharrefreplace)rerrorscSsdS)NTrrrrr4z_get_writer.. )rrnewline)rAttributeErrorru contextlib ExitStackr#ioBufferedIOBase RawIOBaseBufferedWritercallbackdetachwritableseekabletell TextIOWrapper)rrrrostackrrrrs>         rcsddiird<fdd}x|D]}|j}t|tr\|jkr||jn.add_qname) r[r r#r r1r_rr rrY)r3rrr rUrVr1r)rrNrrrFs4      rc Ks|j}|j}|tkr$|d|n|tkr<|d|nt||}|dkr|r\|t|x|D]}t|||d|dqbWn0|d|t|} | s|rD|rx@t|dddD](\} } | rd| } |d | t | fqWxZt| D]N\} } t | t r | j} t | t r$|| j} nt | } |d || | fqW|sZt |sZ|s|d |rt|t|x |D]}t|||d|dqzW|d |d n|d |j r|t|j dS)Nz z)r~.)rU:z xmlns%s="%s"z %s="%s">z)r r1rr _escape_cdata_serialize_xmlr]rYsorted_escape_attribr#r r4r2) rr3rrNr~kwargsr r1rHrYvkrrrrsT             r) ZareabaseZbasefontbrcolframehrZimginputZisindexlinkmetaZparamc Ks|j}|j}|tkr(|dt|n|tkrD|dt|n|||}|dkr|rd|t|x|D]}t|||dqjWn<|d|t|}|s|rH|rx@t|dddD](\} } | rd| } |d| t | fqWxZt|D]N\} } t | t r| j} t | t r(|| j} nt | } |d || | fqW|d | } |r| d ksr| d kr|||n |t|x|D]}t|||dqW| tkr|d |d |jr|t|jdS)Nz zrcSs|dS)Nrr)rrrrrrz!_serialize_html..)rUrz xmlns%s="%s"z %s="%s"rZscriptZstylez|dd}|Sttfk r`t|YnXdS)N&z&rz<rz>)replacer%rr)r1rrrr%s   rc Csyd|kr|dd}d|kr*|dd}d|kr>|dd}d|krR|dd}d |krf|d d }d |krz|d d }d |kr|d d }d |kr|d d}|Sttfk rt|YnXdS)Nrz&rz<rz>"z"z r z  z )rr%rr)r1rrrr5s(        rc Csfy@d|kr|dd}d|kr*|dd}d|kr>|dd}|Sttfk r`t|YnXdS)Nrz&rz>rz")rr%rr)r1rrrrQs   rT)r~cCs6|dkrtnt}t|j||||d|S)Nr)rr~)rStringIOBytesIOrrgetvalue)r"rrr~streamrrrr`sc@s4eZdZddZddZddZddZd d Zd S) _ListDataStreamcCs ||_dS)N)lst)r+rrrrr-usz_ListDataStream.__init__cCsdS)NTr)r+rrrrxsz_ListDataStream.writablecCsdS)NTr)r+rrrr{sz_ListDataStream.seekablecCs|j|dS)N)rrA)r+brrrr~sz_ListDataStream.writecCs t|jS)N)r4r)r+rrrrsz_ListDataStream.tellN)rrrr-rrrrrrrrrss rcCs&g}t|}t|j||||d|S)N)rr~)rrr)r"rrr~rrrrrrs cCsLt|tst|}|jtjdd|j}|r<|ddkrHtjddS)Nr)rr)r#rrsysstdoutrpr2)r3r2rrrrs  cCst}||||S)N)rr )rxrytreerrrr s  csft||dfddGfdddtjj}|d_~dtdsbtdd S) N)events_parserc3sbzNx,EdHd}|s"P|qW}EdH|_Wdr\XdS)Ni@) read_eventsrrrv_close_and_return_rootrootrw)r{r)rzit pullparserrxrriterators  ziterparse..iteratorcseZdZjZdS)z$iterparse..IterParseIteratorN)rrr__next__r)rrrIterParseIteratorsrFrrrsT)r collectionsabcIteratorrr!ru)rxrryrr)rzrrrrxrrs   c@s<eZdZd ddddZddZddZd d Zd d ZdS)rN)rcCs<t|_|pttd|_|dkr(d}|j|j|dS)N)rd)end)rdeque _events_queuerrr _setevents)r+rrrrrr-s  zXMLPullParser.__init__c CsZ|jdkrtd|rVy|j|Wn.tk rT}z|j|Wdd}~XYnXdS)Nz!feed() called after end of stream)rrrv SyntaxErrorrrA)r+r{excrrrrvs zXMLPullParser.feedcCs|j}d|_|S)N)rrw)r+rrrrrs z$XMLPullParser._close_and_return_rootcCs |dS)N)r)r+rrrrwszXMLPullParser.closeccs2|j}x&|r,|}t|tr$|q|VqWdS)N)rpopleftr# Exception)r+reventrrrrs  zXMLPullParser.read_events)N)rrrr-rvrrwrrrrrrs   cCs"|sttd}|||S)N)rd)rrrvrw)r1ryrrrrs   cCsV|sttd}|||}i}x&|D]}|d}|r0|||<q0W||fS)N)rdr.)rrrvrwr[rT)r1ryrZidsr3r.rrrr's     cCs0|sttd}x|D]}||qW|S)N)rd)rrrvrw)Zsequenceryr1rrrr?s   c@s>eZdZdddZddZddZdd Zd d Zd d ZdS)rNcCs.g|_g|_d|_d|_|dkr$t}||_dS)N)_data_elem_last_tailr_factory)r+Zelement_factoryrrrr-^szTreeBuilder.__init__cCs|jS)N)r)r+rrrrwgszTreeBuilder.closecCs>|jr:|jdk r4d|j}|jr,||j_n||j_g|_dS)Nr)rrjoinrr2r1)r+r1rrr_flushms   zTreeBuilder._flushcCs|j|dS)N)rrA)r+r{rrrr{yszTreeBuilder.datacCsF|||||_}|jr0|jd||j|d|_|S)Nrr)rrrrrAr)r+r Zattrsr3rrrstart}s zTreeBuilder.startcCs ||j|_d|_|jS)Nr)rrpoprr)r+r rrrrs zTreeBuilder.end)N) rrrr-rwrr{rrrrrrrQs   sentinelc@sheZdZeddfddZddZddZdd Zd d Zd d Z ddZ ddZ e Z ddZ ddZdS)rNc CsV|tk rtjdtddyddlm}Wn>tk rfy ddl}Wntk r`tdYnXYnX||d}|dkrt }||_ |_ ||_ |_ |j|_i|_|j|_t|dr|j|_t|d r|j|_t|d r|j|_t|d r|j|_t|d r |j|_d |_d |_d |_ d|_!i|_"yd|j#|_$Wnt%k rPYnXdS)Nz.The html argument of XMLParser() is deprecatedr6)r7r)expatz7No module named expat; use SimpleXMLTreeBuilder insteadrrrr{commentpirzExpat %d.%d.%d)& _sentinelr8r9rJ xml.parsersr ImportErrorZpyexpatZ ParserCreaterryrrd_targeterror_error_names_defaultZDefaultHandlerExpandr!_startStartElementHandler_endEndElementHandlerr{ZCharacterDataHandlerrZCommentHandlerrZProcessingInstructionHandlerZ buffer_textordered_attributesspecified_attributes_doctypeentity version_infoversionr)r+rrdrrryrrrr-sN          zXMLParser.__init__cCs|j}|j}x|D]}|dkrDd|_d|_|||jfdd}||_q|dkrf|||jfdd}||_q|dkr||fdd}||_q|d kr||fd d}||_ qt d |qWdS) NrrcSs|||||fdS)Nr)r Z attrib_inrrArrrrhandlersz%XMLParser._setevents..handlerrcSs||||fdS)Nr)r rrArrrrrszstart-nscSs|||p d|pdffdS)Nrr)rrrrArrrrszend-nscSs||dfdS)Nr)rrrArrrrszunknown event %r) rrArr rrrrZStartNamespaceDeclHandlerZEndNamespaceDeclHandlerr)r+Z events_queueZevents_to_reportryrAZ event_namerrrrrs( zXMLParser._seteventscCs&t|}|j|_|j|jf|_|dS)N)r codelinenooffsetZposition)r+rVerrrrr _raiseerrorszXMLParser._raiseerrorcCsFy|j|}Wn2tk r@|}d|kr2d|}||j|<YnX|S)Nrr)rKeyError)r+rUnamerrr_fixnameszXMLParser._fixnamecCsV|j}||}i}|rHx0tdt|dD]}||d||||<q(W|j||S)Nrr6r)rranger4rdr)r+r Z attr_listZfixnamer)irrrrszXMLParser._startcCs|j||S)N)rdrr)r+r rrrrszXMLParser._endc Cs|dd}|dkry |jj}Wntk r4dSXy||j|ddWnZtk rddlm}|d||jj |jj f}d|_ |jj |_ |jj |_ |YnXnD|dkr|dd d krg|_n"|jdk r|d krd|_dS|}|sdS|j|t|j}|d kr|jd}|d krb|dkrb|j\}}} } | r| dd} n*|dkr|dkr|j\}}} d} ndSt|jdr|j|| | ddn:|j|jkr||| | dd||| | ddd|_dS)Nrrrr)rz'undefined entity %s: line %d, column %d r z Ks A   0t4 =2 2  05   IY