
     *g                     <    d dl Z d dlZd dlZd dlmZ  G d d      Zy)    N)Folderc                   @    e Zd Zd
dZd Zd Zd Zd Zd ZddZ	d Z
y	)Sigsic                 N    || _         || _        t        |      | _        d| _        y)zfunctions related to the sigz.json.gzN)e
do_verboser   folderext)selferimpr   s      !/home/ernad/ernad/python/sigsi.py__init__zSigsi.__init__   s%    $Um    c                     | j                   j                  d   }d|z   dz   }| j                  j                  ||d      }|yy)Nfitliz????-??-??_z.ranfi.json.gzT)	do_silentF)r   dirsr	   
get_unique)r   sigfifudi
ranfi_globfounds        r   is_it_validzSigsi.is_it_valid   sO    vv{{7#"U*-==
&&tZ15 ' 7=r   c                 
   | j                   }|j                  d   }| j                   j                  d   dz   }| j                  j	                  ||      }|y t
        j                  j                  |      }|dd }|| _        |S )Nvemlir   z_*_*.json.gzsearch   )	r   r   
issuedatesr	   last_by_mtimeospathbasenamelast_sigr   r   r   glob	last_fufi	last_banar%   s          r   get_lastzSigsi.get_last(   s    FFvvgvv  #n4KK--d4-@	GG$$Y/	R# r   c                 4   | j                   }|j                  d   }| j                   j                  d   dz   }| j                  j	                  ||      }|y t
        j                  j                  |      }|dd }|| _        t        |       t                |S )Nr   r   z_*_*.ranfi.json.gzr   r   r   )r   r   r    r	   r!   r"   r#   r$   r%   printquitr&   s          r   get_last_ranfizSigsi.get_last_ranfi4   s    FFvvgvv  #&::KK--d4-@	GG$$Y/	R# hr   c                 (   | j                   j                  d   }|dz   | j                  z   }g }t        j                  |      D ]L  }t        j
                  j                  |      }|j                  |j                  | j                  d             N |S )z-> get available sigsr   z/* )	r   r   r
   r'   r"   r#   r$   appendreplace)r   r   glob_stringsigsfufibanas         r   	list_sigszSigsi.list_sigsC   sv     vv{{7#TkDHH,IIk*D77##D)DKKTXXr23 + r   c                 $   | j                   }|j                  d   }g }|dz   }t        j                  |      D ]U  }t        j                  j                  |      }|dd }|| j                   j                  vr@|dd }|j                  |       W |S )z---> get list of all versions, called by moclar   z/????-??-??_*ranfi.json.gzr   
   r   i)r   r   r'   r"   r#   r$   active_issuedatesr1   )	r   r   r	   r4   r3   r5   r6   	issuedatesigs	            r   list_availablezSigsi.list_availableN   s     FF;;IIk*D77##D)DQr
I 8 88r#,CKK + r   c                    | j                   }g }|j                  D ]3  }|j                  |   }|r%|j                         dkD  rt	        d|z   dz          :|j
                  d   }|dz   }t        j                  |      }	t        |	      dkD  r:t	        d|z   t        j                         | j                  j                  |d	       t        |	      dk(  r|	d   }
t        j                  j                  |
      }|j                  d
d      }|j!                  d      }t        |      dk(  r|d   dz   |d   z   }||v r#|j#                  |       6 |S )z#sigs we need for the models we haver   zfitli: report z is bremsed.moclaz/*.model   zfitli: more than one model for )filez*.modelz.modelr0   _   )r   livereportbremse_levelr,   r   r'   lensysstderrr	   keep_only_lastr"   r#   r$   r2   splitr1   )r   r   for_classingr   r4   repcoderE   	mocla_dirr3   fufisr5   r6   r<   parts_of_sigs                 r   list_requiredzSigsi.list_required_   s?    FFvvGXXg&F &&(1,*W4~EFG,I#j0KIIk*E5zA~7'A::'**9i@5zQ8D77##D)D,,x,C99S>L< A%"1o+l1o=d{KK5 6 r   c                 "   | j                   | j                   S | j                  | j                          | j                  y t        j                  j                  | j                        }d}t        | j                         }||| }|| _         |S )Nr   )r%   r(   r5   r"   r#   r$   rG   r
   )r   r6   	start_sigend_sigr<   s        r   r<   z	Sigsi.sig   sz    ==$== >>!IIK~~%ww/	M/9W%
r   N)F)FF)__name__
__module____qualname__r   r   r*   r.   r7   r=   rQ   r<    r   r   r   r      s+    
	" Dr   r   )r'   r"   rH   r	   r   r   rX   r   r   <module>rY      s     	 
 y yr   