
    I<`$                     |    d dl Z 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	 d dl
mZ d dlmZ  G d d          ZdS )	    N)Alfit)Nafra)Inkri)Tofde)Vemlic                   `    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
ddZd Zd Zd Zd Zd
S )SidatFc                    || _         t          | j                   | _        t          | j                   | _        t          | j                   | _        t          | j                   | _        t          | j                   | _
        d| _        || _        d| _        d| j         j        v r| j         j        d         | _        d| _        d | _        d S )N zissues.json.gzseed_prefixzkrikt.json.gz)er   inkrir   nafrar   tofder   alfitr   vemliprefix
do_verbose
sidis_nameconf
krikt_namei)selferimpr   s      !/home/ernad/ernad/python/sidat.py__init__zSidat.__init__   s    46]]
46]]
46]]
46]]
46]]
$*DFK''&+m4DK)t    c                    | j         }|j        d         }|dz   }t          j        |          D ]V}t          j                            |          }|                    dd          }||j        vrA|                     |           WdS )z:--> The steps that have to be taken to update, for testingseeds/*.txt.txtr   N)	r   dirsglobospathbasenamereplaceliveupdate_report)r   r   seed_dirglob_stringfufibanarepcodes          r   
update_allzSidat.update_all!   s    F6'?)Ik** 	( 	(D7##D))Dll62..Gaf$$w''''	( 	(r   c                 ^    | j         }|j        |         }|j        d         dz   | j        z   }|S z--> called by trainsidat/)r   reportr"   r   )r   r.   r   r4   issues_fufis        r   
sidis_fufizSidat.sidis_fufi-   s3    F'"k'*S04?Br   c                 @    | j         }|j        d         dz   |z   dz   }|S )--> called by startr   r3   r!   )r   r"   )r   r.   r   r,   s       r   	seed_fufizSidat.seed_fufi4   s(    Fvg$w.7r   c                 ^    | j         }|j        |         }|j        d         dz   | j        z   }|S r1   )r   r4   r"   r   )r   r.   r   r4   
krikt_fufis        r   r;   zSidat.krikt_fufi:   s3    F'"[)C/$/A
r   c                 N    | j         }|j        |         }|j        d         dz   }|S )z--> called by sedatr2   z/sedat.json.gz)r   r4   r"   )r   r.   r   r4   
sedat_fufis        r   r=   zSidat.sedat_fufiB   s-    F'"[),<<
r   c                 ,   g }t          |                     |          d          }|                                D ]Y}|                    d          r|                                                                d         }|                    |           Z|S )r8   r#r   )openr9   	readlines
startswithstripsplitappend)r   r.   papids	seed_filelinepapids         r   rG   zSidat.papidsJ   s    00#66	'')) 	! 	!Ds## JJLL&&((+EMM%    r   c                 b   | j         }|j        |         }|                     |          }|                     |          }t	          |dz   |z              t          j        ||g          r$t	          d           |                     |           || _        |j	        d         dz   | j
        z   }t          j                            |          sA| j        r$t	          d| d|            t	          d           |                     |           | j        rt	          d	|z              t          j                            |          rj| j                            |           | j                            |           | j                            |           | j                            |          }|S d
S )z3--> The steps that have to be taken to update seeds z#sidat: I need to rebuild the seeds.r2   r3   zsidat sees no z to update for zsidat tries a build)only_repcodezsidat wants an update for N)r   r4   r6   r9   printfilerdonerebuildr.   r"   r   r$   r%   isfiler   r   update_for_krikt_fufir   r   r   
build_fufi)r   r.   r   r4   r5   
seeds_fufir;   
vemli_fufis           r   r)   zSidat.update_reportV   s   F'" oog..^^G,,
kC*,---<j\22 	 7888JJw[)C/$/A
w~~j)) 	- .KzKK'KKLLL,---JJGJ,,,? 	:.89997>>*%% 	J,,Z888J,,Z888J,,Z888..z::J tr   Nc                 l   | j         }|j        d         }|dz   }t          j        |          D ]}t          j                            |          }|                    dd          }|| _        ||j        vrI|||k    rR||j	        vrt          d|z   dz              q|j        |         | _        | j        j        d         d	z   | _        |                     |           t          j        | j        d
          rt          d           |                                  |                                  dS )z;--> The steps that have to be taken only once, in principler   r    r!   r   Nzsidat does not see the report .r2   z
/sidat.txtT)allow_missingzsidat: no external seeds.)r   r"   r#   r$   r%   r&   r'   r.   r(   reportsrN   r4   r,   issues_vs_sidocrO   is_empty	get_seedskrikt_seeds)r   rM   r   r*   r+   r9   r-   r.   s           r   rQ   zSidat.build~   sA   F6'?);// 	 	I7##I..Dll62..G"DLaf$$'G|,C,Cai''6@3FGGG(7+DK(1L@DI  +++~dit<<< 31222NN'	 	r   c                 B   |                      | j                  }t          j        |           || _        t          j        ||g          s.t          j        | j        |gd          st          d           dS i | _        d| _	        t          |d          }| j        O| j        rt          dd	d
           | j                                        | _        | j        rt          dd           |                                D ]?}|                    d          r|                     |                                           @t          j        | j        |           t          | j        d          }|                    | j	                   |                                 dS )z=find what can be done by issues and what can be done by sidocT)do_allow_emptyz)sidat is not renewing the issues_vs_sidocFr   r?   Nzsidat loads the inkri ... rL   )endflushdone)rb   r@   w)r6   r.   rO   preparer5   rP   r,   rN   issuesr2   rA   r   r   r   loadrB   rC   
study_seedrD   dumpwriteclose)r   r9   r5   rH   rI   
sidat_files         r   r[   zSidat.issues_vs_sidoc   s    oodl33k"""& [9+66 	TYDIII	=>>>5
C((	6> I24HHHHZ__&&DF *fD))))'')) 	* 	*Ds## OODJJLL))))
4;,,,$)S))
$$$tr   c                    | j         }| j        }d|j        vrt          d           dS |j        d         dz   }| j        }t          j        |          }|j        }|j        d         dz   }t          j
        ||g          sdS d }t          j                            |          rd|z   d	z   }|d
k    rdS |                                r[t          j                            |          s<d|z   dz   |z   }	| j        rt          d|	z              t          j        |	d           dS |j        d         dz   |z   }	||	|z  }	|	d|z   z  }	| j        rt          d|	z              t          j        |	d           d S )Nget_input_for_seedszsidat sees no way to get seeds.Fr2   
/sidoc.xmlstylez/seeds_to_amf.xslt.xmlz | /usr/bin/xsltproc z - r   Tzrsync -va ernad@biomed.news:rL   zsidat runs )shellz > )r   r4   r   rN   r"   r,   r$   statst_sizerO   rP   r%   rR   
is_testingr   
subprocessrun)
r   r   r4   
sidoc_fufi
sidat_fufi
sidat_info
sidat_sizestyle_filter_fufiseeds_to_amfrunners
             r   r]   zSidat.get_seeds   s   F ..34445[)L8
Y
WZ((
'
F7O.FF|J55 	57>>+,, 	O25FFNL??4<<>> 	"'.."<"< 	3j@3FF .mf,---N6....4-.4zA#l"F%*$$? 	*-&()))vT******r   c                    | j         }| j        }|j        d         dz   }t          j                            |          st          d|z              dS |j        d         dz   }t          j                            |          st          d|z             |j        d         dz   | j        z   }g }|	                    |           |	                    |           t          j        ||          sdS |j                            d||           d	S )
Nr2   ro   zI don't see Frp   z/krikts.xslt.xmlr3   kriktsT)r   r4   r"   r$   r%   rR   rN   	Exceptionr   rF   rO   rP   tfufi_to_json)r   r   r4   rw   
style_fufir;   in_fufiss          r   r^   zSidat.krikt_seeds   s   F[)L8
w~~j)) 	.:-...5VG_'99
w~~j)) 	9NZ7888[)C/$/A

###
###|J11 	5	:z:::tr   c                 z    | j         }| j        |z   }||v r||         | j        |<   dS | xj        |dz   z  c_        dS )NT
F)r   r   rf   r2   )r   seedr   rJ   s       r   rh   zSidat.study_seed   sL    Fd"A::!"5DK4JJ%$,&JJur   )F)N)__name__
__module____qualname__r   r/   r6   r9   r;   r=   rG   r)   rQ   r[   r]   r^   rh    r   r   r	   r	      s            
( 
( 
(        
 
 
& & &P   4! ! !F!+ !+ !+F  &    r   r	   )r#   r$   ru   rO   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   <module>r      s     				                                   j j j j j j j j j jr   