a
    $i*                     @   s   d dl Z e 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dZdddZd ddZd!ddZd"ddZdS )#    NzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+Tc           
   	   c   s   |r| d p| dnd }d}t| D ]}|\}}|r|d dkrd|v r|r|dd\}}	z"|slt|d|| |	f fV  W q ty   td| Y q0 n2| r|V  n"|r|s|d||f fV  n|V  d}q*|V  |d	k}q*d S )
N Fr   {:   z{%s}%sz!prefix %r not found in prefix map@)getxpath_tokenizer_refindallsplitKeyErrorSyntaxError	isdecimal)
pattern
namespaceswith_prefixesZdefault_namespaceZparsing_attributetokenttypetagprefixuri r   _/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/lxml/_elementpath.pyxpath_tokenizerI   s*    r   c                    s   |d   fdd}|S )Nr   c                 3   s   | D ]}|  E d H  qd S Niterchildrenresultelemr   r   r   selectf   s    zprepare_child.<locals>.selectr   nextr   r    r   r   r   prepare_childd   s    r#   c                 C   s   dd }|S )Nc                 s   s   | D ]}| dE d H  qd S )N*r   r   r   r   r   r    l   s    zprepare_star.<locals>.selectr   r!   r   r   r   prepare_stark   s    r%   c                 C   s   dd }|S )Nc                 S   s   | S r   r   )r   r   r   r   r    r   s    zprepare_self.<locals>.selectr   r!   r   r   r   prepare_selfq   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   | D ]}|  E d H  qd S r   )Ziterdescendantsr   r   r   r   r    ~   s    z"prepare_descendant.<locals>.select)r   r!   r   r   r   prepare_descendantv   s    
r'   c                 C   s   dd }|S )Nc                 s   s$   | D ]}|  }|d ur|V  qd S r   )	getparent)r   r   parentr   r   r   r       s    zprepare_parent.<locals>.selectr   r!   r   r   r   prepare_parent   s    r*   c                    s   d}g }|  }|d dkrqv|dkr&q|d rV|d d d dv rVd|d dd f}||d pbd	7 }| |d  q|d
kr|d fdd}|S |dkr|d |d fdd}|S |d	krtd|d s|d fdd}|S |dks|dkrLtd|d sL|d |d r<fdd}nfdd}|S |d	ksj|dksj|dkr|d	krt|d d   dk r dkrtdntdnX|d dkrtd|dkr zt|d d  W n ty   tdY n0 nd  fdd}|S tdd S )Nr   r   ])r   r   r   z'"'-z@-c                 3   s"   | D ]}|  d ur|V  qd S r   r   r   )keyr   r   r       s    z!prepare_predicate.<locals>.selectz@-='c                 3   s"   | D ]}|  kr|V  qd S r   r/   r   )r0   valuer   r   r       s    z-?\d+$c                 3   s(   | D ]}|  D ]}|V   qqqd S r   r   )r   r   _r   r   r   r       s    z.='z-='c                 3   s:   | D ]0}|  D ] }d| kr|V   qqqd S Nr   )r   joinitertext)r   r   e)r   r1   r   r   r       s
    c                 3   s&   | D ]}d |  kr|V  qd S r3   )r4   r5   r   )r1   r   r   r       s    z-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedlastzunsupported function   zunsupported expressionc              	   3   sZ   | D ]P}|  }|d u rqz&t||j}|  |u r>|V  W q tyR   Y q0 qd S r   )r(   listr   r   
IndexError)r   r   r)   Zelems)indexr   r   r       s    
zinvalid predicate)appendrematchintr   
ValueError)r"   r   	signature	predicater    r   )r;   r0   r   r1   r   prepare_predicate   sf    &




rC   )r   r$   .z..z//[c                 C   s  | dd dkr| d7 } | f}|rd|v rd|v rZ|d |d krZt d|d |d f ||d fttdd | D  7 }n|tt| 7 }z
t| W S  ty   Y n0 ttd	krt  | dd
 dkrtdt	t
| ||d}z
|j}W n ty   |j}Y n0 z
| }W n ty@   tdY n0 g }z|t|d  || W n ty~   tdY n0 z| }|d dkr| }W n ty   Y qY n0 qF|t|< |S )zcompile selector patternr-   N/r$   r   z2Ambiguous default namespace provided: %r versus %rc                 s   s   | ]}|d  dur|V  qdS )r   Nr   ).0itemr   r   r   	<genexpr>
  s   z'_build_path_iterator.<locals>.<genexpr>d   r   z#cannot use absolute path on elementr   zempty path expressionr   zinvalid path)r@   tuplesorteditems_cacher   lenclearr   iterr   r"   AttributeError__next__StopIterationr<   ops)pathr   r   	cache_keystream_nextr   selectorr   r   r   _build_path_iterator   sV    



r\   c                 C   s.   t |||d}t| f}|D ]}||}q|S NrK   )r\   rR   )r   rW   r   r   r[   r   r    r   r   r   iterfind5  s
    

r^   c                 C   s4   t | |||d}z
t|W S  ty.   Y d S 0 d S r]   )r^   r"   rU   )r   rW   r   r   itr   r   r   find@  s
    
r`   c                 C   s   t t| ||S r   )r9   r^   )r   rW   r   r   r   r   r   r	   K  s    r	   c                 C   s*   t | |||d}|d u r|S |jp$dS d S )NrK   r   )r`   text)r   rW   defaultr   r   elr   r   r   findtextR  s    rd   )NT)T)NT)NT)NT)NNT)r=   compiler   r   r#   r%   r&   r'   r*   rC   rV   rO   r\   r^   r`   r	   rd   r   r   r   r   <module>;   s.   
c
9


