a
    ˉ`                     @   sJ   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 G dd dZdS )    N)Alfit)Fitlic                   @   s8   e Zd Zdd Zdd ZdddZdd	d
Zdd ZdS )Ranfic                 C   sN   || _ t| j | _d| _| jd | _d | _d | _i | _d| _d| _	| 
  d S )Nz.ranfi.jsonz.gzr   )er   alfit	ext_no_gzext	last_fufiZlast_sigf
count_keyscount_timesimport_from_fitli)selferimp r   !/home/ernad/ernad/python/ranfi.py__init__   s    zRanfi.__init__c                 C   sN   t | jd| _| jj| _| jj| _| jj| _| jj| _| jj| _| jj| _dS )z,fitli has common routines of dofre and ranfiranfiN)	r   r   fitlifufigetZ	list_sigsZsigs_availablesigis_up_to_dater   r   r   r   r   "   s    




zRanfi.import_from_fitliFNc                    s   j }|du r"  r"td dS  j j} jjdd}d}|D ]:}td|   j||d |d	7 }|dur@||kr@ q|q@t j fd
ddd} `t	
 j}	t	
 j}
 j}| d|	 d|
 | }|jd d | }t|d}d	}|d | jd	 k r8t|| }|d| d| d |d	7 }q|| }|d| d t| d  |  d| }tj|dd dS )z#-> makes update for all krikt filesNzThe ranfi is up to date.Frandom)orderr   zranfi loads )
do_verbose   c                    s   t  j|  t| fS N)intr
   str)xr   r   r   <lambda>       zRanfi.update.<locals>.<lambda>T)keyreverse_r   /w{
z: ,z
"z": z
}z/bin/gzip -f )shell)r   r   printmax_issuedater   	out_fufisupdate_for_fufisortedr
   tinnusmaker   r   r   dirsopenwritejsondumpsr    close
subprocessrun)r   r   	max_filesr   	issuedatealfit_fufiscount_files
alfit_fufiZsorted_fitsr   r   r   finaout_fufiout_fileZ	count_fitZfit_keyZlast_fitZcommandr   r   r   updatet   sD    


zRanfi.updatec                 C   s&   t || _| jD ]}| | qd S r   )filerloadd
feed_papid)r   r@   r   papidr   r   r   r0      s    
zRanfi.update_for_fufic                 C   s   | j }|| D ]z}t|dkr,td|  q|| jvrX|  jd7  _|| | | j|< n| j|  || | 7  < |  j|| | 7  _qd S )Nr   zempty fit in r   )rG   lenr-   r
   r   r   )r   rI   rG   fitr   r   r   rH      s    
zRanfi.feed_papid)FN)F)__name__
__module____qualname__r   r   rD   r0   rH   r   r   r   r   r      s
   R
*
r   )	r:   r7   rE   r2   r   r   r   r   r   r   r   r   r   <module>   s   