
    Ig!                     l    d Z 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  G d d      Zy)	united seeds and pills    N)Vemli)Ishus)Sigsi)Folderc                   L    e Zd ZddZd ZddZd Zd Zd Zd Z	d	 Z
d
 Zd Zy)Usipic                    || _         d| j                   j                  vry|| _        t        |      | _        d| _        i | _        t        |      | _        t        |      | _
        t        |      | _        | j                  j                         | _        | j                  yt        | j                   j                  d         | _        | j                   j"                  d   dz   | j                  z   dz   | _        d| _        y)	r   is_seedableN.json.gzadospifitli/z_usipi.json.gzF)econf
do_verboser   folderextdatar   sigsir   ishusr   vemliget_last
last_sigfiintback_adospidirsfufii_need_to_write)selferimpr   s      !/home/ernad/ernad/python/usipi.py__init__zUsipi.__init__   s    +$Um	5\
5\
5\
**--/??"tvv{{845FFKK(3.@	$    c                    t         j                  j                  | j                        rI| j                  rt        d| j                          t        j                  | j                        | _        nt        d| j                   d       d| j                  vri | j                  d<   d| j                  vri | j                  d<   d| j                  vri | j                  d<   d| j                  vri | j                  d<   | j                  S )zAthe usipi is recreated for each fitli, not transcribed like grondzusipi loads zusipi: I don't see z. I start from scratch.srvk)	ospathisfiler   r   printfilerloadr   )r    s    r"   get_datazUsipi.get_data'   s    77>>$))$TYYK01

499-DI'		{2IJK diiDIIcNdiiDIIcNdiiDIIcNdiiDIIcNyyr$   Nc                 X   | j                   }|j                  d   }|dz   }| j                         | _        t	        j                  |      D ]~  }t
        j                  j                  |      }|j                  dd      }|||k7  r=| j                  rt        d|        ||j                  vr| j                  rt        d|        || j                   j                  vr| j                  rt        d| d	       | j                   j                  |   }|||j                  vr| j                  rt        d| d	       |j                         s| j                  rt        d| d
       &|j                         s| j                  rt        d| d       S| j                  rt        d|        | j                  ||        | j!                          | j"                  rt        d| j$                          t'        j(                  | j$                  | j                         y)z---> The steps that have to be taken to updateseedsz/*.txtz.txt Nzusipi runs for zusipi does not know zusipi: z is not livez is not adolescent.z is not activezusipi: I update zusipi writes )r   r   r0   r   globr*   r+   basenamereplacer   r-   reportliveis_it_adolescent	is_activeupdate_reportfetch_vemlisr   r   r.   dump)	r    only_repcoder   seed_dirglob_stringr   banarepcoder7   s	            r"   updatezUsipi.update?   s   FF66'?)MMO	IIk*D77##D)Dll62.G'LG,Cy12ahh&??0	:;dffkk)??GG9L9:VV]]7+F#!&&(y=> ..0y0CDE'')y?@(	23w/? +@ 	M$))-.

499dii(r$   c                     | j                         | _        i | j                  d   |<   i | j                  d   |<   | j                  ||       | j                  ||       y )Nr'   r)   )r0   r   deal_with_seedsdeal_with_pills)r    rB   r7   s      r"   r;   zUsipi.update_reportj   sS    MMO	"$		#w"$		#wWf-Wf-r$   c                    |j                   d   dz   dz   }t        j                  j                  |      st	        d| t
        j                         yt        j                  |      }t        t        |            dk(  rt	        d| d	       y|D ]i  }||   }|| j                  d
   vri | j                  d
   |<   || j                  d
   |   |<   || j                  d   |   |<   d
| j                  d   |   |<   k y)Nsidatr   zissues.json.gzusipi does not see fileFr   zusipi does not see seeds in z, seeds too old?r&   r'   r)   T)r   r*   r+   r,   r-   sysstderrr.   r/   lenlistr   )r    rB   r7   issues_fufir2   papid	issuedates          r"   rE   zUsipi.deal_with_seedst   s    kk'*S03CCww~~k*'}5zz#

;'tE{q 0=MNO EeI		#.,.		#y)/6DIIcN9%e,-6DIIcN7#E*-0DIIcN7#E*  r$   c                    |j                         }| j                  rt        d|        || j                  j                  d   }| j
                  j                  || j                        }| j                  rt        d| d|        |j                  d   dz   dz   }t        j                  j                  |      s| j                  rt        d       y	t        j                  |      }|D ]  }||   d
   }||k  r| j                  rt        d| d|        .|| j                  d   vri | j                  d   |<   || j                  d   |   |<   || j                  d   |   |<   d| j                  d   |   |<    y)Nzlast_issuedate is r   zusipi: border_issuedate for z is rH   r   zpopil.json.gzzusipi sees no {popil_fufi}Fizusipi skips z before r&   r'   pr)   T)get_last_issuedater   r-   r   
issuedatesr   shiftr   r   r*   r+   r,   r.   r/   r   )	r    rB   r7   last_issuedateborder_issuedate
popil_fufipillsrQ   rR   s	            r"   rF   zUsipi.deal_with_pills   sw     224??&~&678!!VV..q1N::++ND<L<LM??0	>N=OPQ[[)C//A
ww~~j)23

:&EeS)I++??L8<L;MNO		#.,.		#y)/6DIIcN9%e,-6DIIcN7#E*-0DIIcN7#E*  r$   c                     | j                   d   D ],  }| j                  |      sd| _        | j                  |       . y )Nr&   T)r   do_i_need_to_read_vemli_filer   read_vemlis)r    rR   s     r"   r<   zUsipi.fetch_vemlis   sB    3I44Y? $(D Y' ( r$   c                    | j                   j                  d   dz   |z   }|d| j                  z   dz   z  }t        j                  j                  |      st        d| t        j                         y t        j                  |      }| j                  d   |   D ]X  }||vr"t        d| d	| t        j                         )||   }| j                  j                  |      | j                  d
   |<   Z y )Nr   r   _r   rI   rJ   r&   zusipi ought to see z in r(   )r   r   r   r*   r+   r,   r-   rL   rM   r.   r/   r   r   parse)r    rR   
vemli_fufivemlisrQ   r   s         r"   r_   zUsipi.read_vemlis   s    VV[[)C/);
cDOO+j88
ww~~j)'
|4zz#J'YYs^I.EF"+E7$zlC::'5ME$(JJ$4$4U$;DIIcN5! /r$   c                 X    | j                   d   |   D ]  }|| j                   d   vs y y)z1do we need to find a vemli we don't have already?r&   r(   TF)r   )r    rR   rQ   s      r"   r^   z"Usipi.do_i_need_to_read_vemli_file   s1    YYs^I.EDIIcN* / r$   c                    t        | j                        dk(  r| j                          i }i |d<   i |d<   i |d<   || j                  d   vr|S g }| j                  d   D ]0  }||k7  r	| j                  d   |   D ]  }|j                  |        2 |D ]P  }| j                  d   |   |d   |<   | j                  d   |   |   |d   |<   | j                  d   |   |   |d   |<   R |S )Nr   r(   r&   r)   r'   )rN   r   r0   append)r    rB   sidpilspapidsany_repcoderQ   s         r"   
get_reportzUsipi.get_report   s   tyy>QMMO$))C.( N99S>Kg%30e$ 1 *
 E"&))C."7GCL"&))C."9%"@GCL"&))C."9%"@GCL  r$   )F)N)__name__
__module____qualname__r#   r0   rC   r;   rE   rF   r<   r_   r^   rk    r$   r"   r	   r	      s5    ,0))V.*>< r$   r	   )__doc__r4   r*   rL   r.   r   r   r   r   r   r   r   r   r	   ro   r$   r"   <module>rq      s,      	 
     T Tr$   