a
    ]`                     @   s:   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                   @   s@   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S )Lensuc                 C   sR   || _ t| j | _| j j| _d| _| jd | _i | _d| _d| _| 	  i | _
d S )Nz.lensu.jsonz.gzr   )er   alfit
do_verboseZ	ext_no_gzext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getZ	list_sigsZ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|< qT| jr| jD ](}t| d| j|  d| j|   qdS )z-> used by the grundr    N)lenr   r   ZrelatZcumulr   print)r   totalZ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 ]p}| jr`td| d d	d
d t|| _	| jr~tdd	d | j	D ]}| 
| q|d7 }|dur@||kr@ qq@t| j}	t| j}
i }t| j }|D ]}| j| ||< q| j}| d|	 d|
 | }|jd d | }t|| td|  t|d dS )z#-> makes update for all alfit filesNzThe dofre is up to date.Frandom)orderr   zlensu loads z ... T )flushendZdone)r"      _r   /zlensu wrote z.lensu.json.gz)r   r   r   max_issuedater   Z	out_fufisr   filerloadd
feed_papidtinnusmaker
   r   sortedr	   keysr   dirsdumpclear_by_extension)r   r   	max_filesr   	issuedateZalfit_fufisZcount_files
alfit_fufipapidr
   r   outZnumbersr   r   finaout_fufir   r   r   update5   s@    
zLensu.updatec                 C   s&   t || _| jD ]}| | qd S )N)r(   r)   r*   r+   )r   r5   r   r6   r   r   r   update_for_fufiW   s    
zLensu.update_for_fufic                 C   sX   |  j d7  _ t| j| }|  j|7  _|| jvrBd| j|< d S | j|  d7  < d S )Nr$   )r
   r   r*   r   r	   )r   r6   r   r   r   r   r+   ]   s    

zLensu.feed_papid)FN)F)	__name__
__module____qualname__r   r   r   r:   r;   r+   r   r   r   r   r      s   

"
r   )r(   r,   r   r   r   r   r   r   r   r   r   <module>   s   