
    7Zf                     8    d Z ddlZddlmZ  G d d          ZdS )zxpath utilities    N)etreec                   L    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd ZdS )XpafsFc                     || _         | j         j        j        }i | _        |D ]0}|                    d          s||         | j        |dd          <   1|| _        d S )Nxpath_   )eabovo	constantsN
startswith
do_verbose)selferimpr   r   constants        !/home/ernad/ernad/python/xpafs.py__init__zXpafs.__init__   sk    FL*	! 	7 	7H&&x00 #,X#6DF8ABB<  $    c                     	 |                     || j                  }nZ# t          j        $ rH d| d}|                                 rt          |          t          |t          j                   Y d S w xY w|S )N
namespaceszxpaths can't evalute ''file)	xpathr   r   XPathEvalErroris_dev	Exceptionprintsysstderr)r   docxpoutsnotes        r   runz	Xpafs.run   s    	99RDF933DD# 	 	 	1B111D{{}} &oo%$SZ((((44	 s    AA65A6c                 h    t          |                    || j                            }|dk    rdS dS )Nr   r   FT)lenr   r   )r   r"   r#   counts       r   has_itzXpafs.has_it$   s4    CIIbTVI4455A::5tr   c                 V    t          j        |d                                          }|S )NT)pretty_print)r   tostringdecode)r   r"   strings      r   txtz	Xpafs.txt*   s'    $777>>@@r   c                 p   |                      ||          }|g S |du rg S |du rg S t          |          dk    rg S t          |          dk    r|d         S |                     |          dz   |z   }|                                 rt	          |          t          |t          j                   |d         S )NFTr       must not have several r   r&   r(   r0   r   r   r   r    r!   r   r"   r#   r$   errs        r   zero_or_onezXpafs.zero_or_one.   s    xxR  <I5==I4<<It99>>It99>>7Nhhsmm77"<;;== 	!C.. c
####Awr   c                 2    |                      ||          }|S )N)r&   )r   r"   r#   r$   s       r   allz	Xpafs.all@   s    xxR  r   c                 P   |                      ||          }t          |          dk    rd S t          |          dk    r|d         S |                     |          dz   |z   }|                                 rt	          |          t          |t          j                   |d         S )Nr   r2   r3   r   r4   r5   s        r   none_or_onezXpafs.none_or_oneD   s    xxR  t99>>4t99>>7Nhhsmm77"<;;== 	!C.. c
####Awr   c                     |                      ||          }t          |          dk    r@|                     |          dz   |z   }|                                 rt	          |          d S |d         S )Nr    must have at least one r&   r(   r0   r   r   r5   s        r   one_or_lastzXpafs.one_or_lastP   sh    xxR  t99>>((3--"<<rAC{{}} %nn$4Bxr   c                     |                      ||          }t          |          dk    r@|                     |          dz   |z   }|                                 rt	          |          d S |d         S )Nr   r=   r?   r5   s        r   one_or_firstzXpafs.one_or_firstY   sh    xxR  t99>>((3--"<<rAC{{}} %nn$4Awr   c                    |                      ||          }t          |          dk    r^|                     |          dz   |z   }| j                                        rt          |          t          |t          j                   t          |          dk    r|d         S |                     |          dz   |z   }| 	                                rt          |          t          |t          j                   |d         S )Nr   z must have r   r2   r3   )
r&   r(   r0   r	   
is_testingr   r   r    r!   r   r5   s        r   onez	Xpafs.oneb   s    xxR  t99>>((3---/"4Cv  "" %nn$#CJ''''t99>>7Nhhsmm77"<;;== 	!C.. c
####Awr   N)F)__name__
__module____qualname__r   r&   r*   r0   r7   r9   r;   r@   rB   rE    r   r   r   r      s        % % % %	 	 	      $  
 
 
        r   r   )__doc__r    lxmlr   r   rI   r   r   <module>rL      sd      


      b b b b b b b b b br   