a
    8`?                     @   s2   d dl Z d dlZd dlZd dlZG dd dZdS )    Nc                   @   sT   e Zd Zdd ZdddZdddZd	d
 Zdd ZdddZdd Z	dddZ
dS )Fitlic                 C   sB   || _ d| d | _| jd | _d | _d | _i | _d| _d| _d S )N.z.jsonz.gzr   )e	ext_no_gzext	last_fufilast_sigf
count_keyscount_times)selferimpkind r   !/home/ernad/ernad/python/fitli.py__init__   s    zFitli.__init__NFc                 C   sL   | j }|jd }d| j }|d ur0d| | j }| j jj||d}|| _|S )Nfitli*)search)r   dirsr   dlast_by_mtimer   )r   sig
do_verboser   fudir   r   r   r   r   fufi   s    

z
Fitli.fufic                 C   sz   | j |d}|du rJ|du r,td| j  ntd| j d | d  dS td| d dd	d
 t|}tdd	d |S )z-> get current version)r   NzThere is no z for r   zfitli loads z ...  T)endflushdone)r   )r   printr   filerload)r   r   r   r   r   r   r   r   get$   s    
z	Fitli.getc                 C   sR   | j jd }|d | j }g }t|D ]$}tj|}||| jd q(|S )z-> get available sigsr   /*r   )	r   r   r   globospathbasenameappendreplace)r   r   glob_stringsigsr   banar   r   r   	list_sigs2   s    zFitli.list_sigsc           	      C   sd   | j }|jd }g }|d | j }t| j}t|D ](}tj|}|d|  }|| q6|S )z---> get list of all versions, called by moclar   r$   r   )	r   r   r   lenr%   r&   r'   r(   r)   )	r   r   folderr,   r+   len_extr   r-   r   r   r   r   sigs_available<   s    

zFitli.sigs_availablec                 C   s   | j }g }|jD ]}|j| }|r@| dkr@td| d  q|jd }|d }t|}	t|	dkrztd| tj	d t|	dkrq|	d }
t
j|
}|d	d
}||v rq|| q|S )z#sigs we need for the models we haver   zfitli: report z is bremsed.moclaz/*.model   zmore than one model for )filez.modelr   )r   livereportbremse_levelr    r   r%   r/   sysstderrr&   r'   r(   r*   r)   )r   r   for_classingr   r,   repcoder7   	mocla_dirr+   fufisr   r-   r   r   r   r   required_sigsI   s,    



zFitli.required_sigsc                 C   sd   | j d ur| j S | jd u r0|   | jd u r0d S tj| j}d}t| j }||| }|| _ |S )N   )r   r   r   r&   r'   r(   r/   r   )r   r-   Z	start_sigZend_sigr   r   r   r   r   d   s    


z	Fitli.sigc                 C   sD   | j }| j j}|jd d | d | j }tt|dkr@dS dS )z=-> considered up to date if there is a file for max_issuedater   /z_*_*r   FT)r   max_issuedater   r   r/   r%   )r   r   r   rB   r+   r   r   r   is_up_to_dater   s    zFitli.is_up_to_date)NF)NF)FF)F)__name__
__module____qualname__r   r   r#   r.   r2   r?   r   rC   r   r   r   r   r      s   




r   )r%   r&   r9   r!   r   r   r   r   r   <module>   s   