
    6|h8                     \    S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	   " S S5      r
g)    N)datetime)Xpafsc                   L    \ rS rSrSS jrS rS rS rS rS r	S r
SS
 jrSrg	)Doker   c                 P    Xl         X l        [        U R                   5      U l        g N)e
do_verboser   xpafs)selferimpr   s      !/home/ernad/ernad/python/doker.py__init__Doker.__init__   s    $466]
    c                 `   Un[        U[        R                  5      (       a  UR                  5       nU R                  R                  US5      nUb  UR                  5       R                  U5        U R                  R                  R                  S   n[        R                  " U[        R                  " U R                  R                  S   S5      U R                  R                  S9n[        R                  " 5       R!                  U5      UR"                  S'   [        R$                  " U5      $ )zgets element, returns documentz
//e:updatetime_formaternadupdate)nsmapstring)
isinstanceet_ElementTreegetrootr   none_or_one	getparentremover
   abovo	constants
SubElementQNamensr   todaystrftimeattribElementTree)r   ingestele
update_eleTFs        r   inject_updateDoker.inject_update   s    fboo...."CZZ++C>
!  "))*5VV\\##M2]]371CX(N)-4
&.nn&6&?&?&C
(#~~c""r   c                    U R                   R                  5       n[        R                  " UR	                  5       [        R
                  " U R                   R                  S   S5      5      nU H  nX$   n[        U[        5      (       a  U(       a  SnOSn[        R                  " U[        R
                  " U R                   R                  S   S5      5      nXFR                  S'   XVR                  S'   M     g )Nr   confstruefalseconfnamevalue)
r
   	read_confr   r"   r   r#   r$   r   boolr'   )r   docr3   	confs_eler4   r5   conf_eles          r   inject_confDoker.inject_conf#   s    vv!MM#++-"$((46699W+=w"GI	DJE%&&"E#E}}Y%'XXdffii.@&%IKH&*OOF#',OOG$ r   c                    [         R                  R                  U5      (       d  [        SU 35        g[         R                  R                  U5      (       d  [        SU 35        g[        R
                  " U5      R                  5       n[        R
                  " U5      R                  5       nUR                  S5      nU H;  n[        U[        R                  5      (       a  Xcl        M*  UR                  U5        M=     [        R                  " USS9R                  5       n[        R                  " [        R                   " U5      5      nU$ )z&merges by taking elements of 2 after 1zdoker can not seem Nz*|text()|comment()T)pretty_print)ospathisfileprintfiler	parse_laxr   xpathr   r   _ElementUnicodeResulttailappendtostringdecoder(   
fromstring)	r   fufi_1fufi_2r*   add	add_nodesadd_nodetextr8   s	            r   merge_fufisDoker.merge_fufis3   s    ww~~f%%'x01ww~~f%%'x01oof%--/oof%--/II23	!H(B$<$<==#

8$	 " {{3T299;nnR]]401
r   c                    [         R                  " [         R                  " U R                  R                  S   S5      5      nU R                  R
                  UR                  S'   XR                  S'   [         R                  " U5      nU$ )Nr   webimpnawesenr   Elementr#   r
   r$   rV   r'   r(   )r   rW   r*   r8   s       r   	wesen_docDoker.wesen_docI   s]    jj$&&))G"4e<="ffll

7#

7nnS!
r   c                    [         R                  " [         R                  " U R                  R                  S   S5      5      nU R                  R
                  UR                  S'   XR                  S'   [         R                  " U5      nU$ )Nr   staffrV   stafidrX   )r   r^   r*   r8   s       r   
stafid_docDoker.stafid_docP   s]    jj$&&))G"4g>?"ffll

7%

8nnS!
r   c                 <   SnSUR                   ;   a,  UR                   S   U:w  a  [        S[        R                  S9  OX!R                   S'   SnSUR                   ;   a-  UR                   S   U:w  a  [        S[        R                  S9  U$ X1R                   S'   SnU$ )NFfromz*I have an inconsistency in the editor fromfileTuntilz+I have an inconsistency in the editor until)r'   rB   sysstderr)r   r*   	from_date
until_date	do_i_saves        r   add_spanDoker.add_spanW   s    	SZZzz&!Y.B::' "+JJvIcjj zz'"j0C::'
  #-JJwIr   Nc                    Uc  [         R                  " SS9n [         R                  " X5      nU$ ! [         a    [	        SU 3[
        R                  S9   g [         R                   a    [	        US-   [
        R                  S9   g f = f)NT)remove_blank_textzfiling can not open rc   z is not well formed)r   	XMLParserparseOSErrorrB   rf   rg   XMLSyntaxError)r   fufiparserr8   s       r   rD   Doker.parse_laxj   s~    >\\D9F	((4(C 
  	(/cjjA   	$..SZZ@	s   1 %B	.B	B	)r   r
   r   )Fr	   )__name__
__module____qualname____firstlineno__r   r-   r;   rR   rZ   r_   rk   rD   __static_attributes__ r   r   r   r      s*    #- ,&r   r   )r?   rf   rC   docing
lxml.etreeetreer   r   r   r   r   r{   r   r   <module>r      s&    	 
     k kr   