
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
dY'                 @   s   d dl Z e jdZdddZdd Zdd Zd	d
 Zdd Zdd Zdd Z	eeeeee	dZ
i Zdd ZdddZdddZdddZd ddZdS )!    NzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+c             c   s   |r|j d nd }xtj| D ]}|d }|r|d dkrd|kr|jdd\}}y&|s\t|d d|| |f fV  W q tk
r   td| Y qX q|r|d d||f fV  q|V  q|V  qW d S )N   r   {:z{%s}%sz!prefix %r not found in prefix map)getxpath_tokenizer_refindallsplitKeyErrorSyntaxError)pattern
namespacesZdefault_namespacetokentagprefixZuri r   $/usr/lib64/python3.6/_elementpath.pyxpath_tokenizerF   s     r   c                s   |d   fdd}|S )Nr   c             3   s,   x&| D ]}x|j  D ]
}|V  qW qW d S )N)iterchildren)resulteleme)r   r   r   select]   s    
zprepare_child.<locals>.selectr   )nextr   r   r   )r   r   prepare_child[   s    r   c             C   s   dd }|S )Nc             s   s,   x&| D ]}x|j dD ]
}|V  qW qW d S )N*)r   )r   r   r   r   r   r   r   d   s    
zprepare_star.<locals>.selectr   )r   r   r   r   r   r   prepare_starc   s    r   c             C   s   dd }|S )Nc             S   s   | S )Nr   )r   r   r   r   r   k   s    zprepare_self.<locals>.selectr   )r   r   r   r   r   r   prepare_selfj   s    r   c                sB   |  }|d dkrd n|d s*|d  nt d fdd}|S )Nr   r   r   zinvalid descendantc             3   s,   x&| D ]}x|j  D ]
}|V  qW qW d S )N)Ziterdescendants)r   r   r   )r   r   r   r   w   s    
z"prepare_descendant.<locals>.select)r
   )r   r   r   r   )r   r   prepare_descendanto   s    
r   c             C   s   dd }|S )Nc             s   s(   x"| D ]}|j  }|d k	r|V  qW d S )N)	getparent)r   r   parentr   r   r   r   ~   s    
zprepare_parent.<locals>.selectr   )r   r   r   r   r   r   prepare_parent}   s    r    c                s*  d}g }xp|  }|d dkrP |dkr(q
|d rX|d d d dkrXd|d dd f}||d pdd7 }|j |d  q
W |dkr|d fd	d
}|S |dkr|d |d fdd
}|S |dkrtjd|d  r|d fdd
}|S |dks|dkrTtjd|d  rT|d |d  rDfdd
}nfdd
}|S |dksr|dksr|dkr|dkrt|d d   dk r d!krtdntdnZ|d dkrtd|dkr
yt|d d  W n tk
r   tdY nX nd"  fdd
}|S tdd S )#N r   ]r   z'"'-z@-c             3   s&   x | D ]}|j  d k	r|V  qW d S )N)r   )r   r   )keyr   r   r      s    
z!prepare_predicate.<locals>.selectz@-='c             3   s&   x | D ]}|j  kr|V  qW d S )N)r   )r   r   )r%   valuer   r   r      s    
z-?\d+$c             3   s.   x(| D ] }x|j  D ]}|V  P qW qW d S )N)r   )r   r   _)r   r   r   r      s    
z.='z-='c             3   s@   x:| D ]2}x,|j  D ]}dj|j kr|V  P qW qW d S )Nr!   )r   joinitertext)r   r   r   )r   r&   r   r   r      s
    
c             3   s*   x$| D ]}dj |j  kr|V  qW d S )Nr!   )r(   r)   )r   r   )r&   r   r   r      s    
z-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedZlastzunsupported function   zunsupported expressionc             3   s`   xZ| D ]R}|j  }|d krqy&t|j|j}|  |kr@|V  W q tk
rV   Y qX qW d S )N)r   listr   r   
IndexError)r   r   r   Zelems)indexr   r   r      s    

zinvalid predicate)r!   r!   r.   r.   r.   r.   )appendrematchintr
   
ValueError)r   r   Z	signatureZ	predicater   r   )r-   r%   r   r&   r   prepare_predicate   sf    (




r4   )r!   r   .z..z//[c          +   C   s  | dd dkr| d7 } | f}|rxd|kr2t dd|krd||d fttdd |j D  7 }n|tt|j 7 }yt| S  tk
r   Y nX ttd	krtj  | dd dkrtd
t	t
| |}y
|j}W n tk
r   |j}Y nX y
| }W n tk
r   tdY nX g }xzy|jt|d  || W n tk
r`   tdY nX y| }|d dkr~| }W n tk
r   P Y nX q&W |t|< |S )zcompile selector patternr   N/r   r!   zCempty namespace prefix must be passed as None, not the empty stringc             s   s   | ]}|d  dk	r|V  qdS )r   Nr   ).0itemr   r   r   	<genexpr>  s    z'_build_path_iterator.<locals>.<genexpr>d   z#cannot use absolute path on elementzempty path expressionr   zinvalid pathr.   )r3   tuplesorteditems_cacher	   lenclearr
   iterr   r   AttributeError__next__StopIterationr/   ops)pathr   Z	cache_keystreamZ_nextr   selectorr   r   r   _build_path_iterator   sR    


rJ   c             C   s.   t ||}t| f}x|D ]}||}qW |S )N)rJ   rB   )r   rG   r   rI   r   r   r   r   r   iterfind+  s
    


rK   c             C   s.   t | ||}yt|S  tk
r(   d S X d S )N)rK   r   rE   )r   rG   r   itr   r   r   find6  s
    rM   c             C   s   t t| ||S )N)r+   rK   )r   rG   r   r   r   r   r   A  s    r   c             C   s&   t | ||}|d kr|S |jp dS d S )Nr!   )rM   text)r   rG   defaultr   Zelr   r   r   findtextH  s    rP   )N)N)N)N)NN)r0   compiler   r   r   r   r   r   r    r4   rF   r?   rJ   rK   rM   r   rP   r   r   r   r   <module>8   s*   
c5


