
    h%                     t    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K
Jr  S SKJr   " S S5      rg)	    N)Alfit)Nafra)Tofde)Vemli)Inishc                   j    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rSS jrS rS rS rS rSrg
)Sidat   c                    Xl         [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l
        SU l        X l        SU l        SU l        SU R                   R                  ;   a  U R                   R                  S   U l        SU l        S U l        g )N zissues.json.gzseed_prefixzkrikt.json.gz)er   nafrar   tofder   inishr   alfitr   vemliprefix
do_verbose
sidis_nameconf
krikt_namei)selferimpr   s      !/home/ernad/ernad/python/sidat.py__init__Sidat.__init__   s    466]
466]
466]
466]
466]
$*DFFKK'&&++m4DK)    c                 $   U R                   nUR                  S   nUS-   n[        R                  " U5       HV  n[        R                  R                  U5      nUR                  SS5      nXaR                  ;  a  ME  U R                  U5        MX     g)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_allSidat.update_all!   st    FF66'?)IIk*D77##D)Dll62.Gff$w' +r   c                 z    U R                   nUR                  U   nUR                  S   S-   U R                  -   nU$ z--> called by trainsidat/)r   reportr$   r   )r   r0   r   r7   issues_fufis        r   
sidis_fufiSidat.sidis_fufi-   s=     FF'"kk'*S04??Br   c                 N    U R                   nUR                  S   S-   U-   S-   nU$ )--> called by startr!   r6   r#   )r   r$   )r   r0   r   r.   s       r   	seed_fufiSidat.seed_fufi5   s.     FFvvg$w.7r   c                 z    U R                   nUR                  U   nUR                  S   S-   U R                  -   nU$ r4   )r   r7   r$   r   )r   r0   r   r7   
krikt_fufis        r   r@   Sidat.krikt_fufi<   s;    FF'"[[)C/$//A
r   c                 `    U R                   nUR                  U   nUR                  S   S-   nU$ )z--> called by sedatr5   z/sedat.json.gz)r   r7   r$   )r   r0   r   r7   
sedat_fufis        r   rC   Sidat.sedat_fufiD   s3    FF'"[[),<<
r   c                    / n[         R                  R                  U R                  U5      5      (       d'  [	        SU R                   3[
        R                  S9  / $ [        U R                  U5      S5      nUR                  5        HZ  nUR                  S5      (       a  M  U R                  UR                  5       R                  5       S   -   nUR                  U5        M\     U$ )r<   zsidat: no seed file )filer#r   )r&   r'   isfiler=   printsysstderropen	readlines
startswithr   stripsplitappend)r   r0   papids	seed_filelinepapids         r   rS   Sidat.papidsL   s    ww~~dnnW566((89zz#I0#6	'')Ds##KK$**,"4"4"6q"99EMM%  * r   c                    U R                   nU R                  U5      nU R                  (       a  [        SU-   5        U R	                  U5      nU R                  (       a  [        SU-   5        [
        R                  " X4/5      (       a  [        S5        U R                  US9  U R                  (       a  [        S5        Xl         g)z3--> The steps that have to be taken to update seedszsidat: issues_fufi is zsidat: seeds_fufi is z#sidat: I need to rebuild the seeds.)only_repcodezsidat: build doneN)r   r9   r   rJ   r=   filerdonerebuildr0   r7   r$   r   r&   r'   rI   find_issues)r   r0   r   r8   
seeds_fufir7   r@   s          r   r+   Sidat.update_report\   s    FF oog.??*[89^^G,
??)J67<<\2278JJGJ,??%&r   Nc                    U R                   nUR                  S   nUS-   n[        R                  " U5       GH  n[        R                  R                  U5      nUR                  SS5      nXpl        Ub  Xq:w  a  ME  XrR                  ;  a&  [        SU-   S-   5        [        R                  " 5         XrR                  ;  a  [        SU-   S	-   5        M  UR                  U   U l        U R                  R                  S
   S-   U l        U R                  Xu5        [         R"                  " U R                  SS9(       a  [        S5        GM  [        S5        GM"     g)z;--> The steps that have to be taken only once, in principler!   r"   r#   r   Nzsidat: z is not live, enable it.z&sidat's erimp does not see the report .r5   z/external.txtT)allow_missingzsidat: no external seeds.zsidat: I ignore external seeds.)r   r$   r%   r&   r'   r(   r)   r0   r*   rJ   rK   exitreportsr7   external_fufir]   rZ   is_empty)r   rY   r   r,   r-   r=   r/   r0   s           r   r\   Sidat.build   s   FF66'?);/I77##I.Dll62.G"L'G,Cff$i'),FFG
ii'>H3NO((7+DK!%!1!1'!:_!LDW0~~d00E1278) 0r   c                    U R                  U5      n[        R                  " U5        X0l        [        R                  " X2/5      (       d2  [        R                  " U R
                  U/SS9(       d  [        S5        g0 nSU l        U R                  U5      nU H   nU R                  R                  U5      XF'   M"     [        R                  " XC5        [        SU 35        g)=find what can be done by issues and what can be done by sidocTdo_allow_emptyz.sidat is not renewing {issues_fufi} for seeds.Fr   sidat wrote the issues fufi )r9   rZ   preparer8   r[   re   rJ   r5   rS   r   
lookup_onedump)r   r0   r=   r8   issuesrS   rV   s          r   r]   Sidat.find_issues   s     oog.k"& [+66T//),02BC
W%E JJ11%8FM 

6',[M:; r   c                    U R                  U R                  5      n[        R                  " U5        X l        [        R
                  " X!/5      (       d2  [        R
                  " U R                  U/SS9(       d  [        S5        g0 U l        SU l	        [        US5      nU R                  cV  U R                  (       a  [        S5        U R                  R                  5       U l        U R                  (       a
  [        SSS	9  UR                  5        H:  nUR!                  S
5      (       a  M  U R#                  UR%                  5       5        M<     [        R&                  " U R                  U5        [        SU 35        [        U R                  S5      nUR)                  U R                  5        UR+                  5         g)ri   Trj   z4sidat is not renewing the issues for internal seeds.Fr   rG   zsidat loads the inkri.done)flushrH   rl   w)r9   r0   rZ   rm   r8   r[   re   rJ   rp   r5   rM   r   r   inkriloadrN   rO    find_issuedate_for_internal_seedrP   ro   writeclose)r   r=   r8   rT   rU   
sidat_files         r   !find_issues_for_internal_OBSOLETE'Sidat.find_issues_for_internal_OBSOLETE   sH    oodll3k"& [+66T//),02HI
C(	66>./ZZ__&DFfD)'')Ds##11$**,?	 *
 	

4;;,,[M:;$,,c2
$r   c                     U R                   nU R                  U-   nX2;   a  X#   U R                  U'   gU =R                  US-   -  sl        g)NT
F)r   r   rp   r5   )r   seedr   rV   s       r   rx   &Sidat.find_issuedate_for_internal_seed   sF    FFd":!"DKKJJ%$,&Jr   c                 d    UR                  U R                  5      (       a  U$ U R                  U-   $ N)rO   r   )r   rV   s     r   fix_for_prefixSidat.fix_for_prefix   s+    DKK((L{{U""r   )r   r   r   re   r   r   rp   r8   r   r   r   r0   r7   r5   r   r   r   )Fr   )__name__
__module____qualname____firstlineno__r   r1   r9   r=   r@   rC   rS   r+   r\   r]   r|   rx   r   __static_attributes__ r   r   r	   r	      sE    "
( 3`9<8#J#r   r	   )r%   r&   rK   rZ   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   <module>r      s,     	 
      j# j#r   