
    *0=c                     \    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          ZdS )    N)Alfit)Fitli)Folderc                   <    e Zd Zd Zd Zd Zd
dZddZd Zd	 Z	dS )Lensuc                 &   || _         t          | j                   | _        | j         j        | _        d| _        | j        dz   | _        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erimps     !/home/ernad/ernad/python/lensu.py__init__zLensu.__init__   s}    46]]
&+&>E)TVnn   t    c                    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   s    r   r   zLensu.import_from_fitli   sb    467++
JO	:>-"j7:>!Z5r   c           	         t          | j                  dk    r|                                 | _        d}i }| j        D ]}|| j        |         z  }|||<   i | _        i | _        | j        D ]-}| j        |         |z  | j        |<   ||         |z  | j        |<   .| j        r7| j        D ]1}t          | d| j        |          d| j        |                     0dS dS )z-> used by the grundr    N)lenr   r   relatcumulr   print)r   totalcumulslengths       r   servezLensu.serve'   s   tx==AxxzzDHh 	# 	#FTXf%%E"F6NN

h 	8 	8F!%&!1E!9DJv!'%!7DJv? 	M( M MKK$*V"4KKtz&7IKKLLLL	M 	MM Mr   FNc                 \   | j         }|%|                                 rt          d           dS | j         j        }| j                            d          }d}|D ]}| j        rt          d|z   dz   d	d
           t          j        |          | _	        | j        rt          dd	           | j	        D ]}| 
                    |           |dz  }|||k    r nt          j        | j                  }	t          j        | j                  }
i }t          | j                                                  }|D ]}| j        |         ||<   | j        }| d|	 d|
 | }|j        d         dz   |z   }t          j        ||           t          d|z              t          j        ||           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)r0      _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_fufis                    r   updatezLensu.update9   s   F!3!3!5!5,---5F(	j***::% 	 	J *nz1G; b* * * *Z
++DF *fD)))) ' '&&&&1K$	)A)A{4#455D$677**,,-- 	/ 	/F,v.CKKhAAlAA]ACAA6'?S(4/
3!!!nx'((( 3/////r   c                 v    t          j        |          | _        | j        D ]}|                     |           d S )N)r8   r9   r:   r;   )r   rG   r   rH   s       r   update_for_fufizLensu.update_for_fufi[   sC    J''V 	# 	#EOOE""""	# 	#r   c                     | xj         dz  c_         t          | j        |                   }| xj        |z  c_        || j        vrd| j        |<   d S | j        |xx         dz  cc<   d S )Nr3   )r   r$   r:   r   r   )r   rH   r*   s      r   r;   zLensu.feed_papida   s    QTVE]##f$%%#$DL FV!r   c                     | j         }d| }| j                            | j        j        d         |          }|t          d|            d S t          j        |          }|S )N*r   zlensu has not file )r   r   last_by_mtimer	   r@   r'   r8   r9   )r   r   globr   datas        r   r9   z
Lensu.loadj   si    h3yy{((W)=tDD<---...4z$r   )FN)F)
__name__
__module____qualname__r   r   r+   rM   rO   r;   r9    r   r   r   r   
   s          "6 6 6M M M$ 0  0  0  0D# # # #" " "    r   r   )	r8   r   r<   r
   r   r   r   r   r   rY   r   r   <module>rZ      s                        h h h h h h h h h hr   