
    6g
                     T    d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ  G d d      Z	y)    N)datetime)Xpafsc                   ,    e Zd ZddZd Zd Zd Zd Zy)Dokerc                 T    || _         || _        t        | j                         | _        y )N)e
do_verboser   xpafs)selferimpr	   s      !/home/ernad/ernad/python/doker.py__init__zDoker.__init__   s"    $466]
    c                 R   |}t        |t        j                        r|j                         }| j                  j                  |d      }||j                         j                  |       | j                  j                  j                  d   }t        j                  |t        j                  | j                  j                  d   d      | j                  j                        }t        j                         j!                  |      |j"                  d<   t        j$                  |      S )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_updatezDoker.inject_update   s    fboo..."CZZ++C>
!  "))*5VV\\##M2]]371CX(N)-4
&.nn&6&?&?&C
(#~~c""r   c                    | j                   j                         }t        j                  |j	                         t        j
                  | j                   j                  d   d            }|D ]}  }||   }t        |t              r|rd}nd}t        j                  |t        j
                  | j                   j                  d   d            }||j                  d<   ||j                  d<    y )Nr   confstruefalseconfnamevalue)
r   	read_confr   r   r   r    r!   r   boolr$   )r   docr/   	confs_eler0   r1   conf_eles          r   inject_confzDoker.inject_conf#   s    vv!MM#++-"$((46699W+=w"GI	DJE%&"E#E}}Y%'XXdffii.@&%IKH&*HOOF#',HOOG$ r   c                 z   t         j                  j                  |      st        d|        yt         j                  j                  |      st        d|        yt	        j
                  |      j                         }t	        j
                  |      j                         }|j                  d      }|D ]5  }t        |t        j                        r||_        %|j                  |       7 t        j                  |d      j                         }t        j                  t        j                   |            }|S )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textr4   s	            r   merge_fufisz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                    t        j                  t        j                  | j                  j                  d   d            }| j                  j
                  |j                  d<   ||j                  d<   t        j                  |      }|S )Nr   webimpnawesen)r   Elementr    r   r!   rP   r$   r%   )r   rQ   r'   r4   s       r   	wesen_doczDoker.wesen_docI   s_    jj$&&))G"4e<="ffll

7#

7nnS!
r   N)F)__name__
__module____qualname__r   r*   r7   rM   rS    r   r   r   r      s    #- ,r   r   )
r:   r>   docing
lxml.etreeetreer   r   r
   r   r   rW   r   r   <module>r[      s#    	     C Cr   