
    訌h                     0    S SK r S SKrS SKr " S S5      rg)    Nc                   V    \ rS rSrSS jrS rS rSS jrS rS r	S r
SS	 jrS
 rSrg)Sigsi   c                 *    Xl         X l        SU l        g)zfunctions related to the sigz.json.gzN)e
do_verboseext)selferimpr   s      !/home/ernad/ernad/python/sigsi.py__init__Sigsi.__init__   s    $    c                     U R                   R                  S   nSU-   S-   nU R                   R                  R                  X#SS9nUc  gg)Nfitliz????-??-??_z.ranfi.json.gzT)	do_silentF)r   dirsfolda
get_unique)r
   sigfifudi
ranfi_globfounds        r   is_it_validSigsi.is_it_valid   sQ    vv{{7#"U*-==
''26 ( 8=r   c                    U R                   nUR                  S   nU R                   R                  S   S-   nU R                   R                  R	                  X#S9nUc  g [
        R                  R                  U5      nUSS nX`l        U$ )Nvemlir   z_*_*.json.gzsearch   i)	r   r   
issuedatesr   last_by_mtimeospathbasenamelast_sig)r
   r   r   glob	last_fufi	last_banar&   s          r   get_lastSigsi.get_last   s    FFvvgvv  #n4FFLL..t.A	GG$$Y/	R# r   c                    SnSnU[        U R                  R                  5      :  aX  U R                  R                  U   nU R                  U5      nUb  O*US-  nU[        U R                  R                  5      :  a  MX  Uc  [	        S[
        R                  S9  g[        R                  R                  U5      nUSS nX`l
        SU;   a  [        S	5      eU(       a  [	        S
U-   5        U$ )z-last ranfi, potentially not of last issuedater   N   zsigsi has no ranfifiler    52tV8_3svMT6zbad sigzsigsi: last sig is )lenr   r!   get_ranfi_by_dateprintsysstderrr#   r$   r%   r&   	Exception)r
   r   countfufi	issuedater)   r&   s          r   get_last_ranfiSigsi.get_last_ranfi%   s    c$&&++,,))%0I)))4DQJE c$&&++,, <&SZZ8GG$$T*	R$ X%I&&'(23r   c                     US-   nU R                   R                  S   nU R                   R                  R                  X2S9nU$ )Nz_*_*.ranfi.json.gzr   r   )r   r   r   r"   )r
   r:   r'   r   r(   s        r   r3   Sigsi.get_ranfi_by_date;   s@    //vv{{7#FFLL..t.A	r   c                 .   U R                   R                  S   nUS-   U R                  -   n/ n[        R                  " U5       HM  n[        R
                  R                  U5      nUR                  UR                  U R                  S5      5        MO     U$ )z-> get available sigsr   z/* )	r   r   r	   r'   r#   r$   r%   appendreplace)r
   r   glob_stringsigsr9   banas         r   	list_sigsSigsi.list_sigsB   sv     vv{{7#TkDHH,IIk*D77##D)DKKTXXr23 + r   c                     U R                   nUR                  S   n/ nUS-   n[        R                  " U5       H8  n[        R                  R                  U5      nUSS nUR                  U5        M:     U$ )z---> get list of all versions, called by moclar   z/????-??-??_*ranfi.json.gzr    r0   )r   r   r'   r#   r$   r%   rA   )r
   r   folderrD   rC   r9   rE   sigs           r   list_availableSigsi.list_availableM   sq     FF;;IIk*D77##D)D
 r#,CKK + r   c                    U R                   n/ nUR                   GHI  nUR                  U   nU(       a'  UR                  5       S:  a  [	        SU-   S-   5        MA  UR
                  S   nUS-   n[        R                  " U5      n	[        U	5      S:  aA  [	        SU-   [        R                  S9  U R                   R                  R                  US	5        [        U	5      S:X  a  M  U	S   n
[        R                  R                  U
5      nUR                  S
S5      nUR!                  S5      n[        U5      S:X  a  US   S-   US   -   nX;   a  GM8  UR#                  U5        GML     U$ )z#sigs we need for the models we haver   zfitli: report z is bremsed.moclaz/*.modelr-   zfitli: more than one model for r.   z*.model.modelr@   _   )r   livereportbremse_levelr4   r   r'   r2   r5   r6   r   keep_only_lastr#   r$   r%   rB   splitrA   )r
   r   for_classingr   rD   repcoderS   	mocla_dirrC   fufisr9   rE   rJ   parts_of_sigs                 r   list_requiredSigsi.list_required^   sA    FFvvGXXg&F &&(1,*W4~EFG,I#j0KIIk*E5zA~7'A::'++IyA5zQ8D77##D)D,,x,C99S>L< A%"1o+l1o={KK5 6 r   c                     [         R                  R                  U5      nUR                  S5      (       a  US S $ [	        SU 3[
        R                  S9  g )NrO   izsigsi can't read r.   )r#   r$   r%   endswithr4   r5   r6   )r
   r9   rE   s      r   read
Sigsi.read   sJ    ww%==""9!$(szz:r   )r   r   r	   r&   N)F)FF)__name__
__module____qualname____firstlineno__r   r   r*   r;   r3   rF   rK   r\   r`   __static_attributes__ r   r   r   r      s0    
,	" Dr   r   )r'   r#   r5   r   rg   r   r   <module>rh      s     	 
 r   