
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \ÅÞ  ã               @   sD  d ddddddddd	d
ddddddddddddgZ dZddlZddlZddlZddlZddlZddlZddlm	Z	 G dd	„ d	e
ƒZdd„ ZG dd„ dƒZi fdd„Zd]d d „Zd^d!d„ZeZG d"d„ dƒZG d#d„ dƒZejd$d%„ ƒZd_d&d'„Zd(d)„ Zd`ZyeeƒZW n ek
�r   Y nX d7d8„ Zd9d:„ Zeeed;œZd<d„ Zd=d>d?d@dAdBdCdDœZee_dEdF„ Z dGdH„ Z!dIdJ„ Z"dKdL„ Z#dadMdNœdOd„Z$G dPdQ„ dQej%ƒZ&dbdMdNœdRd„Z'dSd„ Z(dcdTd„Z)dddUd„Z*G dVd„ dƒZ+dedWd„Z,dfdXd„Z-e,Z.dgdYd„Z/G dZd„ dƒZ0G d[d„ dƒZ1yeZ2dd\l3T W n e4k
�r>   Y nX dS )hÚCommentÚdumpÚElementÚElementTreeÚ
fromstringÚfromstringlistÚ	iselementÚ	iterparseÚparseÚ
ParseErrorÚPIÚProcessingInstructionÚQNameÚ
SubElementÚtostringÚtostringlistÚTreeBuilderÚVERSIONÚXMLÚXMLIDÚ	XMLParserÚXMLPullParserÚregister_namespacez1.3.0é    Né   )ÚElementPathc               @   s   e Zd ZdS )r
   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú-/usr/lib64/python3.6/xml/etree/ElementTree.pyr
   h   s   	c             C   s
   t | dƒS )NÚtag)Úhasattr)Úelementr   r   r   r   v   s    c               @   s  e Zd ZdZdZdZdZi fdd„Zdd„ Zdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd8d d!„Zd9d"d#„Zd:d$d%„Zd;d&d'„Zd(d)„ Zd<d*d+„Zd,d-„ Zd.d/„ Zd0d1„ Zd=d2d3„Zd>d4d5„Z d6d7„ Z!dS )?r   Nc             K   sD   t |tƒstd|jjf ƒ‚|jƒ }|j|ƒ || _|| _g | _	d S )Nzattrib must be dict, not %s)
Ú
isinstanceÚdictÚ	TypeErrorÚ	__class__r   ÚcopyÚupdater    ÚattribÚ	_children)Úselfr    r)   Úextrar   r   r   Ú__init__§   s    

zElement.__init__c             C   s   d| j j| jt| ƒf S )Nz<%s %r at %#x>)r&   r   r    Úid)r+   r   r   r   Ú__repr__±   s    zElement.__repr__c             C   s   | j ||ƒS )N)r&   )r+   r    r)   r   r   r   Úmakeelement´   s    	zElement.makeelementc             C   s0   | j | j| jƒ}| j|_| j|_| |d d …< |S )N)r0   r    r)   ÚtextÚtail)r+   Úelemr   r   r   r'   ¿   s
    zElement.copyc             C   s
   t | jƒS )N)Úlenr*   )r+   r   r   r   Ú__len__Ì   s    zElement.__len__c             C   s   t jdtdd� t| jƒdkS )NzyThe behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.é   )Ú
stacklevelr   )ÚwarningsÚwarnÚFutureWarningr4   r*   )r+   r   r   r   Ú__bool__Ï   s    
zElement.__bool__c             C   s
   | j | S )N)r*   )r+   Úindexr   r   r   Ú__getitem__×   s    zElement.__getitem__c             C   s   || j |< d S )N)r*   )r+   r<   r"   r   r   r   Ú__setitem__Ú   s    zElement.__setitem__c             C   s   | j |= d S )N)r*   )r+   r<   r   r   r   Ú__delitem__â   s    zElement.__delitem__c             C   s   | j |ƒ | jj|ƒ d S )N)Ú_assert_is_elementr*   Úappend)r+   Ú
subelementr   r   r   rA   å   s    
zElement.appendc             C   s(   x|D ]}| j |ƒ qW | jj|ƒ d S )N)r@   r*   Úextend)r+   Úelementsr"   r   r   r   rC   ð   s    
zElement.extendc             C   s   | j |ƒ | jj||ƒ d S )N)r@   r*   Úinsert)r+   r<   rB   r   r   r   rE   ú   s    
zElement.insertc             C   s    t |tƒstdt|ƒj ƒ‚d S )Nzexpected an Element, not %s)r#   Ú_Element_Pyr%   Útyper   )r+   Úer   r   r   r@   ÿ   s    
zElement._assert_is_elementc             C   s   | j j|ƒ d S )N)r*   Úremove)r+   rB   r   r   r   rI     s    zElement.removec             C   s   t jdtdd� | jS )NzaThis method will be removed in future versions.  Use 'list(elem)' or iteration over elem instead.r6   )r7   )r8   r9   ÚDeprecationWarningr*   )r+   r   r   r   Úgetchildren  s    
zElement.getchildrenc             C   s   t j| ||ƒS )N)r   Úfind)r+   ÚpathÚ
namespacesr   r   r   rL   !  s    	zElement.findc             C   s   t j| |||ƒS )N)r   Úfindtext)r+   rM   ÚdefaultrN   r   r   r   rO   ,  s    zElement.findtextc             C   s   t j| ||ƒS )N)r   Úfindall)r+   rM   rN   r   r   r   rQ   :  s    	zElement.findallc             C   s   t j| ||ƒS )N)r   Úiterfind)r+   rM   rN   r   r   r   rR   E  s    	zElement.iterfindc             C   s    | j jƒ  g | _d  | _| _d S )N)r)   Úclearr*   r1   r2   )r+   r   r   r   rS   P  s    
zElement.clearc             C   s   | j j||ƒS )N)r)   Úget)r+   ÚkeyrP   r   r   r   rT   [  s    zElement.getc             C   s   || j |< d S )N)r)   )r+   rU   Úvaluer   r   r   Úseth  s    zElement.setc             C   s
   | j jƒ S )N)r)   Úkeys)r+   r   r   r   rX   r  s    zElement.keysc             C   s
   | j jƒ S )N)r)   Úitems)r+   r   r   r   rY   {  s    	zElement.itemsc             c   sH   |dkrd }|d ks| j |kr$| V  x| jD ]}|j|ƒE d H  q,W d S )NÚ*)r    r*   Úiter)r+   r    rH   r   r   r   r[   †  s    zElement.iterc             C   s   t jdtdd� t| j|ƒƒS )NzbThis method will be removed in future versions.  Use 'elem.iter()' or 'list(elem.iter())' instead.r6   )r7   )r8   r9   ÚPendingDeprecationWarningÚlistr[   )r+   r    r   r   r   Úgetiterator�  s    
zElement.getiteratorc             c   s^   | j }t|tƒ r|d k	rd S | j}|r.|V  x*| D ]"}|jƒ E d H  |j}|r4|V  q4W d S )N)r    r#   Ústrr1   Úitertextr2   )r+   r    ÚtrH   r   r   r   r`   ¦  s    
zElement.itertext)N)NN)N)N)N)N)N)"r   r   r   r    r)   r1   r2   r-   r/   r0   r'   r5   r;   r=   r>   r?   rA   rC   rE   r@   rI   rK   rL   rO   rQ   rR   rS   rT   rW   rX   rY   r[   r^   r`   r   r   r   r   r   {   s>   	







	

	c             K   s,   |j ƒ }|j|ƒ | j||ƒ}| j|ƒ |S )N)r'   r(   r0   rA   )Úparentr    r)   r,   r"   r   r   r   r   º  s
    

c             C   s   t tƒ}| |_|S )N)r   r   r1   )r1   r"   r   r   r   r   Í  s    	c             C   s&   t tƒ}| |_|r"|jd | |_|S )Nú )r   r   r1   )Útargetr1   r"   r   r   r   r   Û  s
    
c               @   sV   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )r   Nc             C   s   |rd||f }|| _ d S )Nz{%s}%s)r1   )r+   Ztext_or_urir    r   r   r   r-   ü  s    zQName.__init__c             C   s   | j S )N)r1   )r+   r   r   r   Ú__str__   s    zQName.__str__c             C   s   d| j j| jf S )Nz<%s %r>)r&   r   r1   )r+   r   r   r   r/     s    zQName.__repr__c             C   s
   t | jƒS )N)Úhashr1   )r+   r   r   r   Ú__hash__  s    zQName.__hash__c             C   s    t |tƒr| j|jkS | j|kS )N)r#   r   r1   )r+   Úotherr   r   r   Ú__le__  s    
zQName.__le__c             C   s    t |tƒr| j|jk S | j|k S )N)r#   r   r1   )r+   rh   r   r   r   Ú__lt__
  s    
zQName.__lt__c             C   s    t |tƒr| j|jkS | j|kS )N)r#   r   r1   )r+   rh   r   r   r   Ú__ge__  s    
zQName.__ge__c             C   s    t |tƒr| j|jkS | j|kS )N)r#   r   r1   )r+   rh   r   r   r   Ú__gt__  s    
zQName.__gt__c             C   s    t |tƒr| j|jkS | j|kS )N)r#   r   r1   )r+   rh   r   r   r   Ú__eq__  s    
zQName.__eq__)N)r   r   r   r-   re   r/   rg   ri   rj   rk   rl   rm   r   r   r   r   r   î  s   
c               @   s„   e Zd Zddd„Zdd„ Zdd„ Zddd	„Zdd
d„Zddd„Zd dd„Z	d!dd„Z
d"dd„Zd#dd„Zd$ddœdd„Zdd„ ZdS )%r   Nc             C   s   || _ |r| j|ƒ d S )N)Ú_rootr	   )r+   r"   Úfiler   r   r   r-   )  s    zElementTree.__init__c             C   s   | j S )N)rn   )r+   r   r   r   Úgetroot/  s    zElementTree.getrootc             C   s
   || _ d S )N)rn   )r+   r"   r   r   r   Ú_setroot3  s    zElementTree._setrootc          
   C   sŠ   d}t |dƒst|dƒ}d}zZ|d krHtƒ }t |dƒrH|j|ƒ| _| jS x|jdƒ}|sZP |j|ƒ qJW |jƒ | _| jS |r„|jƒ  X d S )NFÚreadÚrbTÚ_parse_wholei   )r!   Úopenr   rt   rn   rr   ÚfeedÚclose)r+   ÚsourceÚparserÚclose_sourceÚdatar   r   r   r	   =  s&    




zElementTree.parsec             C   s   | j j|ƒS )N)rn   r[   )r+   r    r   r   r   r[   b  s    
zElementTree.iterc             C   s   t jdtdd� t| j|ƒƒS )NzbThis method will be removed in future versions.  Use 'tree.iter()' or 'list(tree.iter())' instead.r6   )r7   )r8   r9   r\   r]   r[   )r+   r    r   r   r   r^   o  s    
zElementTree.getiteratorc             C   s:   |d d… dkr,d| }t jd| tdd� | jj||ƒS )Nr   ú/Ú.z‡This 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   )r8   r9   r:   rn   rL   )r+   rM   rN   r   r   r   rL   x  s    
zElementTree.findc             C   s<   |d d… dkr,d| }t jd| tdd� | jj|||ƒS )Nr   r|   r}   z‡This 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   )r8   r9   r:   rn   rO   )r+   rM   rP   rN   r   r   r   rO   Ž  s    
zElementTree.findtextc             C   s:   |d d… dkr,d| }t jd| tdd� | jj||ƒS )Nr   r|   r}   z‡This 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   )r8   r9   r:   rn   rQ   )r+   rM   rN   r   r   r   rQ   ¤  s    
zElementTree.findallc             C   s:   |d d… dkr,d| }t jd| tdd� | jj||ƒS )Nr   r|   r}   z‡This 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   )r8   r9   r:   rn   rR   )r+   rM   rN   r   r   r   rR   º  s    
zElementTree.iterfindT)Úshort_empty_elementsc            C   sÞ   |s
d}n|t krtd| ƒ‚|s4|dkr0d}nd}|jƒ }t||ƒ�Ž}|dkrŽ|sd|d krŽ|dkrŽ|}	|dkr€dd l}
|
jƒ }	|d|	f ƒ |d	kr¤t|| jƒ n,t| j|ƒ\}}t | }||| j|||d
� W d Q R X d S )NÚxmlzunknown method %rÚc14núutf-8úus-asciiÚunicoder   z$<?xml version='1.0' encoding='%s'?>
r1   )r~   )r�   r‚   rƒ   )	Ú
_serializeÚ
ValueErrorÚlowerÚ_get_writerÚlocaleÚgetpreferredencodingÚ_serialize_textrn   Ú_namespaces)r+   Úfile_or_filenameÚencodingZxml_declarationÚdefault_namespaceÚmethodr~   Z	enc_lowerÚwriteZdeclared_encodingrˆ   ÚqnamesrN   Z	serializer   r   r   r�   Ð  s2    
zElementTree.writec             C   s   | j |dd�S )Nr€   )r�   )r�   )r+   ro   r   r   r   Ú
write_c14n
  s    zElementTree.write_c14n)NN)N)N)N)N)NN)N)N)NNNN)r   r   r   r-   rp   rq   r	   r[   r^   rL   rO   rQ   rR   r�   r’   r   r   r   r   r     s    


%

	



   5c             c   s"  y
| j }W nP tk
rZ   |dkr.t| dƒ}nt| d|dd�}|� |j V  W d Q R X Y nÄX |dkrl|V  n²tjƒ �¤}t| tjƒrˆ| }nft| tjƒr¬tj	| ƒ}|j
|jƒ nBtjƒ }dd„ |_||_ y| j|_| j|_W n tk
rì   Y nX tj||ddd�}|j
|jƒ |j V  W d Q R X d S )	Nrƒ   ÚwÚxmlcharrefreplace)r�   Úerrorsc               S   s   dS )NTr   r   r   r   r   Ú<lambda>3  s    z_get_writer.<locals>.<lambda>Ú
)r�   r•   Únewline)r�   ÚAttributeErrorru   Ú
contextlibÚ	ExitStackr#   ÚioÚBufferedIOBaseÚ	RawIOBaseÚBufferedWriterÚcallbackÚdetachÚwritableÚseekableÚtellÚTextIOWrapper)rŒ   r�   r�   ro   Ústackr   r   r   r‡     s>    



r‡   c                s  d d i‰i ‰ˆ rdˆˆ < ‡ ‡‡fdd„}xê| j ƒ D ]Þ} | j}t|tƒr\|jˆkr˜||jƒ n<t|tƒrx|ˆkr˜||ƒ n |d k	r˜|tk	r˜|tk	r˜t|ƒ xR| j	ƒ D ]F\}}t|tƒrº|j}|ˆkrÊ||ƒ t|tƒr¢|jˆkr¢||jƒ q¢W | j}t|tƒr2|jˆkr2||jƒ q2W ˆˆfS )NÚ c                sÂ   y | d d… dkrŠ| dd … j ddƒ\}}ˆj|ƒ}|d krjtj|ƒ}|d krZdtˆƒ }|dkrj|ˆ|< |r€d||f ˆ| < qž|ˆ| < nˆ r–tdƒ‚| ˆ| < W n tk
r¼   t| ƒ Y nX d S )Nr   ú{ú}zns%dr   z%s:%sz<cannot use non-qualified names with default_namespace option)ÚrsplitrT   Ú_namespace_mapr4   r…   r%   Ú_raise_serialization_error)ZqnameÚurir    Úprefix)rŽ   rN   r‘   r   r   Ú	add_qnameP  s&    


z_namespaces.<locals>.add_qname)
r[   r    r#   r   r1   r_   r   r   r¬   rY   )r3   rŽ   r¯   r    rU   rV   r1   r   )rŽ   rN   r‘   r   r‹   E  s4    




r‹   c             K   sÌ  |j }|j}|tkr$| d| ƒ �nŽ|tkr<| d| ƒ �nv|| }|d kr€|r\| t|ƒƒ x|D ]}t| ||d |d� qbW �n2| d| ƒ t|jƒ ƒ}	|	s¢|�rD|rèx@t|jƒ dd„ d�D ](\}
}|rÐd| }| d	|t	|
ƒf ƒ q¼W xZt|	ƒD ]N\}}
t
|tƒ�r|j}t
|
tƒ�r$||
j }
nt	|
ƒ}
| d
|| |
f ƒ qòW |�s\t|ƒ�s\| �rª| dƒ |�rv| t|ƒƒ x |D ]}t| ||d |d� �q|W | d| d ƒ n| dƒ |j�rÈ| t|jƒƒ d S )Nz	<!--%s-->z<?%s?>)r~   ú<c             S   s   | d S )Nr   r   )Úxr   r   r   r–   ˜  s    z _serialize_xml.<locals>.<lambda>)rU   ú:z xmlns%s="%s"z %s="%s"ú>z</z />)r    r1   r   r   Ú_escape_cdataÚ_serialize_xmlr]   rY   ÚsortedÚ_escape_attribr#   r   r4   r2   )r�   r3   r‘   rN   r~   Úkwargsr    r1   rH   rY   ÚvÚkr   r   r   rµ   ‚  sT    





rµ   ÚareaÚbaseÚbasefontÚbrÚcolÚframeÚhrÚimgÚinputÚisindexÚlinkÚmetaÚparamc             K   sÚ  |j }|j}|tkr(| dt|ƒ ƒ �n˜|tkrD| dt|ƒ ƒ �n||| }|d kr„|rd| t|ƒƒ x|D ]}t| ||d ƒ qjW �n<| d| ƒ t|jƒ ƒ}|s¦|�rH|rìx@t|jƒ dd„ d�D ](\}	}
|
rÔd|
 }
| d|
t	|	ƒf ƒ qÀW xZt|ƒD ]N\}
}	t
|
tƒ�r|
j}
t
|	tƒ�r(||	j }	nt|	ƒ}	| d	||
 |	f ƒ qöW | d
ƒ |jƒ }|�rˆ|dk�sr|dk�r|| |ƒ n| t|ƒƒ x|D ]}t| ||d ƒ �qŽW |tk�rÀ| d| d
 ƒ |j�rÖ| t|jƒƒ d S )Nz	<!--%s-->z<?%s?>r°   c             S   s   | d S )Nr   r   )r±   r   r   r   r–   Ð  s    z!_serialize_html.<locals>.<lambda>)rU   r²   z xmlns%s="%s"z %s="%s"r³   ZscriptZstylez</)r    r1   r   r´   r   Ú_serialize_htmlr]   rY   r¶   r·   r#   r   Ú_escape_attrib_htmlr†   Ú
HTML_EMPTYr2   )r�   r3   r‘   rN   r¸   r    r1   rH   rY   r¹   rº   Zltagr   r   r   rÈ   ¼  sT    





rÈ   c             C   s.   x|j ƒ D ]}| |ƒ q
W |jr*| |jƒ d S )N)r`   r2   )r�   r3   Úpartr   r   r   rŠ   î  s    rŠ   )r   Úhtmlr1   c             C   sP   t jd| ƒrtdƒ‚x.ttjƒ ƒD ]\}}||ks:|| kr"t|= q"W | t|< d S )Nzns\d+$z'Prefix format reserved for internal use)ÚreÚmatchr…   r]   r«   rY   )r®   r­   rº   r¹   r   r   r   r   ý  s    
r   rÌ   ZrdfZwsdlZxsZxsiZdc)z$http://www.w3.org/XML/1998/namespacezhttp://www.w3.org/1999/xhtmlz+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://schemas.xmlsoap.org/wsdl/z http://www.w3.org/2001/XMLSchemaz)http://www.w3.org/2001/XMLSchema-instancez http://purl.org/dc/elements/1.1/c             C   s   t d| t| ƒjf ƒ‚d S )Nzcannot serialize %r (type %s))r%   rG   r   )r1   r   r   r   r¬     s    r¬   c             C   sf   y@d| kr| j ddƒ} d| kr*| j ddƒ} d| kr>| j ddƒ} | S  ttfk
r`   t| ƒ Y nX d S )Nú&z&amp;r°   z&lt;r³   z&gt;)Úreplacer%   r™   r¬   )r1   r   r   r   r´   $  s    r´   c             C   sÊ   y¤d| kr| j ddƒ} d| kr*| j ddƒ} d| kr>| j ddƒ} d| krR| j ddƒ} d	| krf| j d	d
ƒ} d| krz| j dd
ƒ} d
| krŽ| j d
dƒ} d| kr¢| j ddƒ} | S  ttfk
rÄ   t| ƒ Y nX d S )NrÏ   z&amp;r°   z&lt;r³   z&gt;ú"z&quot;z
r—   úz&#10;ú	z&#09;)rÐ   r%   r™   r¬   )r1   r   r   r   r·   4  s(    r·   c             C   sf   y@d| kr| j ddƒ} d| kr*| j ddƒ} d| kr>| j ddƒ} | S  ttfk
r`   t| ƒ Y nX d S )NrÏ   z&amp;r³   z&gt;rÑ   z&quot;)rÐ   r%   r™   r¬   )r1   r   r   r   rÉ   P  s    rÉ   T)r~   c            C   s6   |dkrt jƒ nt jƒ }t| ƒj||||d� |jƒ S )Nrƒ   )r�   r~   )rœ   ÚStringIOÚBytesIOr   r�   Úgetvalue)r"   r�   r�   r~   Ústreamr   r   r   r   _  s    c               @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú_ListDataStreamc             C   s
   || _ d S )N)Úlst)r+   rÙ   r   r   r   r-   t  s    z_ListDataStream.__init__c             C   s   dS )NTr   )r+   r   r   r   r¢   w  s    z_ListDataStream.writablec             C   s   dS )NTr   )r+   r   r   r   r£   z  s    z_ListDataStream.seekablec             C   s   | j j|ƒ d S )N)rÙ   rA   )r+   Úbr   r   r   r�   }  s    z_ListDataStream.writec             C   s
   t | jƒS )N)r4   rÙ   )r+   r   r   r   r¤   €  s    z_ListDataStream.tellN)r   r   r   r-   r¢   r£   r�   r¤   r   r   r   r   rØ   r  s
   rØ   c            C   s&   g }t |ƒ}t| ƒj||||d� |S )N)r�   r~   )rØ   r   r�   )r"   r�   r�   r~   rÙ   r×   r   r   r   r   ƒ  s
    c             C   sN   t | tƒst| ƒ} | jtjdd� | jƒ j}| s>|d dkrJtjjdƒ d S )Nrƒ   )r�   r   r—   éÿÿÿÿ)r#   r   r�   ÚsysÚstdoutrp   r2   )r3   r2   r   r   r   r   Œ  s    

c             C   s   t ƒ }|j| |ƒ |S )N)r   r	   )rx   ry   Útreer   r   r   r	   ¢  s    	c                sd   t ||d�‰‡ ‡‡‡fdd„‰G ‡fdd„dtjƒ}|ƒ ‰d ˆ_Š~d‰ tˆdƒs`tˆdƒ‰d	‰ ˆS )
N)ÚeventsÚ_parserc           
   3   sb   zNx,ˆj ƒ E d H  ˆjdƒ} | s"P ˆj| ƒ qW ˆjƒ }ˆj ƒ E d H  |ˆ_W d ˆ r\ˆjƒ  X d S )Né   i   i @  )Úread_eventsrr   rv   Ú_close_and_return_rootÚrootrw   )r{   rä   )rz   ÚitÚ
pullparserrx   r   r   ÚiteratorÂ  s    

ziterparse.<locals>.iteratorc                   s   e Zd Z” ƒ jZdS )z$iterparse.<locals>.IterParseIteratorN)r   r   r   Ú__next__r   )rç   r   r   ÚIterParseIteratorÒ  s   ré   Frr   rs   T)r   ÚcollectionsÚIteratorrä   r!   ru   )rx   rß   ry   ré   r   )rz   rå   rç   ræ   rx   r   r   °  s    

c               @   s<   e Zd Zdddœdd„Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )r   N)rà   c            C   s<   t jƒ | _|pttƒ d�| _|d kr(d}| jj| j|ƒ d S )N)rd   Úend)rì   )rê   ÚdequeÚ_events_queuer   r   rà   Ú
_setevents)r+   rß   rà   r   r   r   r-   â  s
    
zXMLPullParser.__init__c             C   sZ   | j d krtdƒ‚|rVy| j j|ƒ W n. tk
rT } z| jj|ƒ W Y d d }~X nX d S )Nz!feed() called after end of stream)rà   r…   rv   ÚSyntaxErrorrî   rA   )r+   r{   Úexcr   r   r   rv   î  s    
zXMLPullParser.feedc             C   s   | j jƒ }d | _ |S )N)rà   rw   )r+   rä   r   r   r   rã   ø  s    
z$XMLPullParser._close_and_return_rootc             C   s   | j ƒ  d S )N)rã   )r+   r   r   r   rw   þ  s    zXMLPullParser.closec             c   s2   | j }x&|r,|jƒ }t|tƒr$|‚q|V  qW d S )N)rî   Úpopleftr#   Ú	Exception)r+   rß   Úeventr   r   r   râ     s    
zXMLPullParser.read_events)N)r   r   r   r-   rv   rã   rw   râ   r   r   r   r   r   à  s
   
c             C   s"   |st tƒ d�}|j| ƒ |jƒ S )N)rd   )r   r   rv   rw   )r1   ry   r   r   r   r     s    
c             C   sV   |st tƒ d�}|j| ƒ |jƒ }i }x&|jƒ D ]}|jdƒ}|r0|||< q0W ||fS )N)rd   r.   )r   r   rv   rw   r[   rT   )r1   ry   rÞ   Zidsr3   r.   r   r   r   r   &  s    


c             C   s0   |st tƒ d�}x| D ]}|j|ƒ qW |jƒ S )N)rd   )r   r   rv   rw   )Zsequencery   r1   r   r   r   r   >  s
    	
c               @   s>   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )r   Nc             C   s.   g | _ g | _d | _d | _|d kr$t}|| _d S )N)Ú_dataÚ_elemÚ_lastÚ_tailr   Ú_factory)r+   Zelement_factoryr   r   r   r-   ]  s    zTreeBuilder.__init__c             C   s   | j S )N)r÷   )r+   r   r   r   rw   f  s    zTreeBuilder.closec             C   s>   | j r:| jd k	r4dj| j ƒ}| jr,|| j_n|| j_g | _ d S )Nr§   )rõ   r÷   Újoinrø   r2   r1   )r+   r1   r   r   r   Ú_flushl  s    

zTreeBuilder._flushc             C   s   | j j|ƒ d S )N)rõ   rA   )r+   r{   r   r   r   r{   x  s    zTreeBuilder.datac             C   sF   | j ƒ  | j||ƒ | _}| jr0| jd j|ƒ | jj|ƒ d| _|S )Nr   r   rÛ   )rû   rù   r÷   rö   rA   rø   )r+   r    Zattrsr3   r   r   r   Ústart|  s    zTreeBuilder.startc             C   s    | j ƒ  | jjƒ | _d| _| jS )Nr   )rû   rö   Úpopr÷   rø   )r+   r    r   r   r   rì   ‹  s    zTreeBuilder.end)N)	r   r   r   r-   rw   rû   r{   rü   rì   r   r   r   r   r   P  s   
	c               @   sb   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
e
Zdd„ Zdd„ ZdS )r   r   Nc             C   s<  yddl m} W n> tk
rN   ydd l}W n tk
rH   tdƒ‚Y nX Y nX |j|dƒ}|d krjtƒ }| | _| _| | _| _	|j
| _i | _| j|_t|dƒrª| j|_t|dƒr¼| j|_t|dƒrÎ|j|_t|dƒrà|j|_t|d	ƒrò|j|_d
|_d
|_d
|_d | _i | _yd|j | _ W n t!k
�r6   Y nX d S )Nr   )Úexpatz7No module named expat; use SimpleXMLTreeBuilder insteadr©   rü   rì   r{   ÚcommentÚpir   zExpat %d.%d.%d)"Úxml.parsersrþ   ÚImportErrorZpyexpatZParserCreater   ry   rà   rd   Ú_targetÚerrorÚ_errorÚ_namesÚ_defaultZDefaultHandlerExpandr!   Ú_startÚStartElementHandlerÚ_endÚEndElementHandlerr{   ZCharacterDataHandlerrÿ   ZCommentHandlerr   ZProcessingInstructionHandlerZbuffer_textÚordered_attributesÚspecified_attributesÚ_doctypeÚentityÚversion_infoÚversionr™   )r+   rÌ   rd   r�   rþ   ry   r   r   r   r-   ¦  sF    




zXMLParser.__init__c             C   s¶   | j }|j}x¤|D ]œ}|dkrDd|_d|_||| jfdd„}||_q|dkrf||| jfdd„}||_q|dkr„||fdd„}||_q|d	kr¢||fd
d„}||_	qt
d| ƒ‚qW d S )Nrü   r   c             S   s   |||| |ƒfƒ d S )Nr   )r    Z	attrib_inrô   rA   rü   r   r   r   ÚhandlerÝ  s    z%XMLParser._setevents.<locals>.handlerrì   c             S   s   |||| ƒfƒ d S )Nr   )r    rô   rA   rì   r   r   r   r  â  s    zstart-nsc             S   s   ||| p
d|pdffƒ d S )Nr§   r   )r®   r­   rô   rA   r   r   r   r  ç  s    zend-nsc             S   s   ||d fƒ d S )Nr   )r®   rô   rA   r   r   r   r  ë  s    zunknown event %r)rà   rA   r  r  r  r	  r
  r  ZStartNamespaceDeclHandlerZEndNamespaceDeclHandlerr…   )r+   Zevents_queueZevents_to_reportry   rA   Z
event_namer  r   r   r   rï   Ð  s(    
zXMLParser._seteventsc             C   s&   t |ƒ}|j|_|j|jf|_|‚d S )N)r
   ÚcodeÚlinenoÚoffsetZposition)r+   rV   Úerrr   r   r   Ú_raiseerrorñ  s    zXMLParser._raiseerrorc             C   sF   y| j | }W n2 tk
r@   |}d|kr2d| }|| j |< Y nX |S )Nr©   r¨   )r  ÚKeyError)r+   rU   Únamer   r   r   Ú_fixname÷  s    zXMLParser._fixnamec             C   sV   | j }||ƒ}i }|rHx0tdt|ƒdƒD ]}||d  |||| ƒ< q(W | jj||ƒS )Nr   r6   r   )r  Úranger4   rd   rü   )r+   r    Z	attr_listZfixnamer)   Úir   r   r   r    s    zXMLParser._startc             C   s   | j j| j|ƒƒS )N)rd   rì   r  )r+   r    r   r   r   r
    s    zXMLParser._endc             C   sø  |d d… }|dkr°y| j j}W n tk
r4   d S X y|| j|dd…  ƒ W nZ tk
rª   ddlm} |jd|| jj	| jj
f ƒ}d|_| jj	|_| jj
|_|‚Y nX �nD|dkrÒ|d d… d	krÒg | _�n"| jd k	�rô|d
krðd | _d S |jƒ }|�sd S | jj|ƒ t| jƒ}|dk�rô| jd }|dk�rb|dk�rb| j\}}}	}
|	�rŒ|	dd… }	n*|dk�rˆ|dk�rˆ| j\}}}
d }	nd S t| j dƒ�r´| j j||	|
dd… ƒ n:| j| jk�rî| j||	|
dd… ƒ | j||	|
dd… ƒ d | _d S )Nr   rÏ   r   )rþ   z'undefined entity %s: line %d, column %dé   r°   é	   z	<!DOCTYPEr³   r6   ZPUBLICé   ZSYSTEMé   ÚdoctyperÛ   rÛ   rÛ   rÛ   rÛ   )rd   r{   r™   r  r  r  rþ   r  ry   ZErrorLineNumberZErrorColumnNumberr  r  r  r  ÚstriprA   r4   r!   r!  Ú_XMLParser__doctype)r+   r1   r®   Zdata_handlerrþ   r  ÚnrG   r  ÚpubidÚsystemr   r   r   r    sZ    





zXMLParser._defaultc             C   s   t jdtƒ d S )Nz[This method of XMLParser is deprecated.  Define doctype() method on the TreeBuilder target.)r8   r9   rJ   )r+   r  r%  r&  r   r   r   r!  E  s    zXMLParser.doctypec             C   sF   y| j j|dƒ W n. | jk
r@ } z| j|ƒ W Y d d }~X nX d S )Nr   )ry   ÚParser  r  )r+   r{   r¹   r   r   r   rv   U  s    zXMLParser.feedc             C   s†   y| j jddƒ W n. | jk
r@ } z| j|ƒ W Y d d }~X nX z,y| jj}W n tk
rd   Y nX |ƒ S W d | ` | `| `| `X d S )Nr§   r   )	ry   r'  r  r  rd   rw   r™   rà   r  )r+   r¹   Zclose_handlerr   r   r   rw   \  s    
zXMLParser.close)r   NN)r   r   r   r-   rï   r  r  r  r
  r  r!  r#  rv   rw   r   r   r   r   r   ›  s   
*!4)rZ   )N)N)N)r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   )NN)NN)N)NN)N)N)N)5Ú__all__r   rÜ   rÍ   r8   rœ   rê   rš   r§   r   rð   r
   r   r   r   r   r   r   r   r   Úcontextmanagerr‡   r‹   rµ   rÊ   rW   Ú	NameErrorrÈ   rŠ   r„   r   r«   r¬   r´   r·   rÉ   r   r�   rØ   r   r   r	   r   r   r   r   r   r   r   r   rF   Z_elementtreer  r   r   r   r   Ú<module>K   s¤     A

0 t4
=2 2

05


K U