o
    *0=c                     @   sN   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 G dd dZdS )    N)Alfit)Fitli)Folderc                   @   sH   e Zd Zdd Zdd Zdd Zdd	d
ZdddZdd Zdd Z	dS )Lensuc                 C   s^   || _ t| j | _| j j| _d| _| jd | _t| j | _i | _d| _	d| _
|   i | _d S )Nz.lensu.jsonz.gzr   )er   alfit
do_verbose	ext_no_gzextr   folderlengthscount_papidscount_lengthsimport_from_fitliraw)selferimp r   !/home/ernad/ernad/python/lensu.py__init__   s   
zLensu.__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lensuN)	r   r   fitlifufiget	list_sigssigs_availablesigis_up_to_date)r   r   r   r   r      s   




zLensu.import_from_fitlic                 C   s   t | jdkr|  | _d}i }| jD ]}|| j| 7 }|||< qi | _i | _| jD ]}| j| | | j|< || | | j|< q*| jr[| jD ]}t| d| j|  d| j|   qFdS dS )z-> used by the grundr    N)lenr   r   relatcumulr   print)r   totalcumulslengthr   r   r   serve'   s"   




&zLensu.serveFNc                 C   sL  | j }|du r|  rtd dS | j j}| jjdd}d}|D ]8}| jr0td| d d	d
d t|| _	| jr?tdd	d | j	D ]}| 
| qB|d7 }|durX||krX nq t| j}	t| j}
i }t| j }|D ]	}| j| ||< qp| j}| d|	 d|
 | }|jd d | }t|| td|  t|| dS )z#-> makes update for all alfit filesNzThe lensu is up to date.Frandom)orderr   zlensu loads z ... T )flushenddone)r*      _r   /zlensu wrote )r   r   r"   max_issuedater   	out_fufisr   filerloadd
feed_papidtinnusmaker   r   sortedr   keysr
   dirsdumpclear_by_extension)r   r   	max_filesr   	issuedatealfit_fufiscount_files
alfit_fufipapidr   r   outnumbersr%   r
   finaout_fufir   r   r   update9   sB   
zLensu.updatec                 C   s&   t || _| jD ]}| | q	d S )N)r2   r3   r4   r5   )r   rA   r   rB   r   r   r   update_for_fufi[   s   
zLensu.update_for_fufic                 C   sX   |  j d7  _ t| j| }|  j|7  _|| jvr!d| j|< d S | j|  d7  < d S )Nr-   )r   r   r4   r   r   )r   rB   r%   r   r   r   r5   a   s   

zLensu.feed_papidc                 C   sN   | j }d| }| j| jjd |}|d u r td|  d S t|}|S )N*r   zlensu has not file )r
   r   last_by_mtimer   r:   r"   r2   r3   )r   r
   globr   datar   r   r   r3   j   s   

z
Lensu.load)FN)F)
__name__
__module____qualname__r   r   r&   rG   rH   r5   r3   r   r   r   r   r   
   s    


"	r   )	r2   r   r6   r   r   r   r   r   r   r   r   r   r   <module>   s    