
    f                     0    S r SSKrSSKJr   " S S5      rg)zxpath utilities    N)etreec                   Z    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)Xpafs   c                    Xl         U R                   R                  R                  nU R                   R                  R                  U l        0 U l        U H/  nUR                  S5      (       d  M  X4   U R
                  USS  '   M1     X l        g )Nxpath_   )eabovo	constants
is_testingis_devN
startswith
do_verbose)selferimpr   r   constants        !/home/ernad/ernad/python/xpafs.py__init__Xpafs.__init__   sr    FFLL**	ffll--!H&&x00#,#6DFF8AB<  " %    c                      UR                  X R                  S9nU$ ! [        R                   aA    SU S3nU R	                  5       (       a  [        U5      e[        U[        R                  S9   g f = f)N
namespaceszxpaths can't evaluate ''file)	xpathr   r   XPathEvalErrorr   	Exceptionprintsysstderr)r   docxpoutsnotes        r   run	Xpafs.run   sm    	99RFF93D  ## 	,RD2D{{}}o%$SZZ(	s    AA21A2c                 V    [        UR                  X R                  S95      nUS:X  a  gg)Nr   r   FT)lenr   r   )r   r%   r&   counts       r   has_itXpafs.has_it%   s(    CIIbVVI45A:r   c                 L    [         R                  " USS9R                  5       nU$ )NT)pretty_print)r   tostringdecode)r   r%   strings      r   txt	Xpafs.txt+   s     $7>>@r   c                 <   U R                  X5      nUc  / $ USL a  / $ USL a  / $ [        U5      S:X  a  / $ [        U5      S:X  a  US   $ U R                  U5      S-   U-   nU R                  5       (       a  [	        U5      e[        U[        R                  S9  US   $ )NFTr       must not have several r   r)   r,   r5   r   r!   r"   r#   r$   r   r%   r&   r'   errs        r   zero_or_oneXpafs.zero_or_one/   s    xx <I5=I4<It9>It9>7Nhhsm77"<;;==C. c

#Awr   c                 (    U R                  X5      nU$ z1should be obsolete, all has a spercial hightlightr)   r   r%   r&   r'   s       r   all	Xpafs.allA       xx r   c                 (    U R                  X5      nU$ r@   rA   rB   s       r   alle
Xpafs.alleF   rE   r   c                    U R                  X5      n[        U5      S:X  a  g [        U5      S:X  a  US   $ U R                  U5      S-   U-   nU R                  5       (       a  [	        U5      e[        U[        R                  S9  US   $ )Nr   r8   r9   r   r:   r;   s        r   none_or_oneXpafs.none_or_oneL   sv    xx t9>t9>7Nhhsm77"<;;==C. c

#Awr   c                     U R                  X5      n[        U5      S:X  a8  U R                  U5      S-   U-   nU R                  5       (       a  [	        U5      eg US   $ )Nr    must have at least one r)   r,   r5   r   r!   r;   s        r   one_or_lastXpafs.one_or_lastX   sT    xx t9>((3-"<<rAC{{}}n$Bxr   c                     U R                  X5      n[        U5      S:X  a8  U R                  U5      S-   U-   nU R                  5       (       a  [	        U5      eg US   $ )Nr   rM   rO   r;   s        r   one_or_firstXpafs.one_or_firsta   sT    xx t9>((3-"<<rAC{{}}n$Awr   c                    U R                  X5      n[        U5      S:X  aY  U R                  U5      S-   U-   nU R                  R	                  5       (       a  [        U5      e[        U[        R                  S9  [        U5      S:X  a  US   $ U R                  U5      S-   U-   nU R                  5       (       a  [        U5      e[        U[        R                  S9  US   $ )Nr   z must have r   r8   r9   )
r)   r,   r5   r
   r   r!   r"   r#   r$   r   r;   s        r   one	Xpafs.onej   s    xx t9>((3--/"4Cvv  ""n$#CJJ't9>7Nhhsm77"<;;==C. c

#Awr   )r   r   r
   r   N)F)__name__
__module____qualname____firstlineno__r   r)   r.   r5   r=   rC   rG   rJ   rP   rS   rV   __static_attributes__ r   r   r   r      s9    	%	$

r   r   )__doc__r#   lxmlr   r   r]   r   r   <module>r`      s      j jr   