
    i                     d    S SK r S SKrS SKrS SKJr  S SKrS SKrS SKrS SK	r	S SK
r
 " S S5      rg)    Nc                       \ rS rSrSS jrSS jr0 4S jrS rS rSS jr	S	 r
SS
 jrS rS rSS jrS rSS jrSS jrS rS rS rSrg)Trans   c                 8    Xl         X l        0 U l        S U l        g N)e
do_verbosesheetsbase_doc)selferimpr	   s      !/home/ernad/ernad/python/trans.py__init__Trans.__init__   s    $    c                    U R                  U5      n[        R                  " X5U/5      (       d  g[        R                  " U5      nU R                  X5      n[        U5      nUR                  S5      n	AA[        R                  " 5         U(       a-  [        SS5      n
U
R                  U	5        U
R                  5         [        R                  " U	5      n[        R                  " X5        g )NFutf-8z
/tmp/errorw)get_fufifilerdonerefiling	parse_lax
get_resultbytesdecodegccollectopenwriteclosejsonloadsdump)r   shenain_fufiout_fufido_error
sheet_fufiin_docout_doc	out_bytes
out_string
error_filedatas               r   fufi_to_jsonTrans.fufi_to_json   s    ]]5)
||H7&;<<!!'*//%0'N	%%g.



lC0JZ(zz*%

4"r   c                 d   U R                  U5      nU R                  R                  S   n[        R                  R                  U5      nUR                  SS5      S   nU SU SU S3nSn	U H  n
U	S	U
-   S
-   XJ   -   -  n	M     SU	 S
U S
U 3nUSU SU 3-  n[        R                  " USSS9  g);for papers screen transformation because so maxvars in lxmllog.   r   /_.err$--maxvars 1000000 --maxdepth 1000000z --stringparam  /usr/bin/xsltproc  >  2> TcheckshellN)	r   r   dirsospathbasenamesplit
subprocessrun)r   r%   r&   r'   paramsr)   log_dirin_indicerr_fufiargsparamss               r   
via_systemTrans.via_system,   s    ]]5)
&&++e$77##G,>>#q)!,Yawaz65E%-3fmCCD  a
|1WI>	s8*D
++qD1r   c                     U R                  X5      n[        U5      nUR                  S5      nAA[        R                  " 5         U$ Nr   r   r   r   r   r   r   r%   r*   r+   r,   r-   s         r   doc_to_jsonTrans.doc_to_json;   s>    //%0'N	%%g.



r   c                     U R                  X5      n[        U5      nUR                  S5      nAA[        R                  " 5         U$ )z/same as previous function, but with better namer   rT   rU   s         r   doc_to_stringTrans.doc_to_stringE   s>    //%0'N	%%g.



r   Nc                     Uc  U R                  5       n[        U[        5      (       a  [        R                  " U5      nU R                  XUS9n[        R                  " U5        UR                  USS9  U$ )N)rI   Tpretty_print)	create_base_doc
isinstancestretparser   r   preparer    )r   r%   ingestr'   rI   r+   s         r   ingest_to_fufiTrans.ingest_to_fufiP   sc    >))+Ffc""XXf%F//%/?hhT2r   c                     U R                  U5      n[        R                  " U5      n[        R                  " U5      nUR	                  S5        X@R
                  U'   U$ )Ni@B )r   ra   rb   XSLTset_global_max_depthr
   )r   r%   r)   	sheet_docsheets        r   
load_sheetTrans.load_sheete   sK    ]]5)
HHZ(		"""7+"Er   c                 4   XR                   ;  a  U R                  U5        U R                   U   nUc
   U" U5      nO	U" U40 UD6nUR                  5       b  [        R                  " U5        U$ ! [        R                   a    U R	                  X5      n NPf = fr   )r
   rl   ra   XSLTApplyErrornew_via_systemgetrootcleanup_namespaces)r   r%   r*   rI   rk   results         r   r   Trans.get_resultm   s    #OOE"E"><v 6,V,F>>'!!&) $$ <,,U;<s   A/ /%BBc                     U R                   nUR                  R                  S   nU R                   R                  S   S-   U-   U-   n[        R
                  R                  U5      (       d  [        SU-   5      eU$ )Nxslstyler7   zI don't see the file )r   abovoextrB   rC   rD   isfile	Exception)r   r%   r   ry   r)   s        r   r   Trans.get_fufi   sh    FFggkk% VV[[)C/%7#=
ww~~j))3j@AAr   c                    U R                  U5      n[        R                  " X4U/5      (       d  g[        R                  " U5      nUR                  5       nU R                  X&5      n[        R                  " UR                  5       U5        U$ )NF)r   r   r   ra   rb   rq   r   install_xml)r   r&   r%   r'   r)   r*   in_eler+   s           r   fufi_to_fufiTrans.fufi_to_fufi   sm    ]]5)
 ||H7&;<<'"!//%0'//+X6r   c                     U R                  U5      n[        R                  " U5      nU R                  X5      n[	        U5      nUR                  S5      nU$ rS   )r   ra   rb   r   r   r   )	r   r%   r&   rI   r)   r*   r+   r,   r-   s	            r   fufi_to_stringTrans.fufi_to_string   sK    ]]5)
'"//%0'N	%%g.
r   c                     [         R                  " U5      nUR                  5       nU R                  X$5      n[        R
                  " UR                  5       U5        U$ )ztranform fufi to itself)ra   rb   rq   r   r   r~   )r   fufir%   r*   r   r+   s         r   r   
Trans.fufi   sG     $!//%0'//+T2r   c                     U R                  X5      n[        U5      nUR                  S5      nAA[        R                  " 5         [
        R                  " X75        U$ rS   )r   r   r   r   r   r   srite)r   r%   r*   r'   r(   r+   r,   r-   s           r   doc_to_text_fufiTrans.doc_to_text_fufi   sK     //%0'N	%%g.



H)r   c                 r    U R                  X5      n[        R                  " UR                  5       U5        U$ r   )r   r   r~   rq   )r   r%   r*   r'   r(   r+   s         r   doc_to_fufiTrans.doc_to_fufi   s,    //%0'//+X6r   c                 >    [         R                  " S5      nXl        U$ )Nz<root/>)ra   
fromstringr   )r   r   s     r   r^   Trans.create_base_doc   s    ==+ r   c                 >   [         R                  " U5      nUc  [        SU 35        [        5         [         R                  " U5      n U" U R
                  5        U$ ! [         R                   a+  n[        U5        [        U5        [        5          S nAU$ S nAff = f)Nztrans can't parse )ra   rb   printquitrh   r   ro   )r   r   rj   rk   errors        r   	run_checkTrans.run_check   s    HHTN	&tf-.F	"	$--      	$K%LFF 	s   	A B1 BBc                    U R                  U5      nS[        [        R                  " 5       5      SS -   nUS-   nUS-   nUR	                  USS9  US-   nS	nS
U SU SU 3n	U	SU SU 3-  n	 [
        R                  " U	SSS9   [        R                  " U5      nXeU4 H?  n[         R"                  R%                  U5      (       d  M)  [         R&                  " U5        MA     U$ ! [
        R                   a7    [        US5      n
U
R                  5       n[        U[        R                  S9   gf = f! [        R                   a    [        US5      nUR                  5       n Nf = f)r3   z/tmp/N   zout.xmlzin.xmlTr\   r9   r:   r<   r;   r=   r>   r?   r)file)r   r`   uuiduuid4r    rG   rH   CalledProcessErrorr   readr   sysstderrra   rb   XMLSyntaxErrorrC   rD   rz   remove)r   r%   r*   r)   randnar'   r&   rL   rM   rO   err_fileerrdocout_filer   s                  r   rp   Trans.new_via_system   sW   ]]5)
3tzz|,Ra00I%8#W40F?5 a
|1WI>	s8*D
++	NN1D5	"((8$C 1Dww~~d##		$ 2 
 ,, 	Hc*H--/C#CJJ'		    	"Hc*H--/C	"s%   .C$ D2 $AD/.D/20E%$E%)r   r	   r   r
   )Fr   )__name__
__module____qualname____firstlineno__r   r0   rP   rV   rY   re   rl   r   r   r   r   r   r   r   r^   r   rp   __static_attributes__ r   r   r   r      s\    #( ;= 2	*$

"r   r   )r   r"   rC   
lxml.etreeetreera   rG   r   r   r   r   r   r   r   r   <module>r      s,    	  	    
  [ [r   