
    vg5                     \    d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
  G d d      Zy)	zmakes feature length counts    N)Vemli)Fitli)Sigsi)Folderc                   <    e Zd Zd	dZd Zd Zd
dZd Zd ZddZ	y)VelopNc                    || _         t        | j                         | _        | j                   j                  | _        || _        d| _        | j
                  dz   | _        t        | j                         | _        t        | j                         | _
        ||}n| j                  j                         }|| _        i | _        d| _        d| _        | j!                          |j"                  d   | _        |d | _        d | _        i | _        y | j                  dz   |z   dz   | _        | j                  dz   |z   dz   | _        i | _        y )Nz.velop.jsonz.gzr   fitli/z_lensu.json.gzz_entsi.json.gz)er   vemli
do_verbosedo_sigfi	ext_no_gzextr   folderr   sigsiget_lastsigfilengthscount_papidscount_lengthsimport_from_fitlidirs
entsi_fufi
lensu_fufiraw)selferimpr   r   r   s        !/home/ernad/ernad/python/velop.py__init__zVelop.__init__   s!   466]
&&++ &>>E)TVVn466]
 EJJ'')E
 jj)
 ="DO"DO
 	 #kkC/%7:JJDO"kkC/%7:JJDO    c                 H   t        | j                  d      | _        | j                  j                  | _        | j                  j                  | _        | j                  j
                  | _        | j                  j                  | _        | j                  j                  | _        y)z,fitli has common routines of dofre and ranfivelopN)r   r   r
   fufiget	list_sigssigs_availablesig)r   s    r    r   zVelop.import_from_fitli5   sd    4667+
JJOO	::>>--"jj77::>>r"   c           	         t        | j                        dk(  r| j                         | _        d}i }| j                  D ]  }|| j                  |   z  }|||<    i | _        i | _        | j                  D ]6  }| j                  |   |z  | j                  |<   ||   |z  | j                  |<   8 | j
                  r?| j                  D ]/  }t        | d| j                  |    d| j                  |           1 yy)z-> used by the grondr    N)lenr   r&   relatcumulr   print)r   totalcumulslengths       r    servezVelop.serve?   s    txx=AxxzDHhhFTXXf%%E"F6N  

hhF!%&!1E!9DJJv!'%!7DJJv  ??(($**V"4!5Qtzz&7I6JKL # r"   c                    	 | j                   }| j                  j                  |      }d}| j                  }t	        j
                  ||      s,| j                  rt        d| d       | j                          y|D ]  }t	        j                  |      }	|	|j                  vr'| j                  rt        d|z   dz   dd	
       t	        j                  |      }
| j                  rt        dd       |
D ]  }|
|   }| j                  ||        |dz  }|||k\  r n| j                  rt        d|	         i }t        | j                  j                               }|D ]  }| j                  |   ||<    t	        j                   ||       t        d|z          |t	        j"                  |d       | j                  |      }|S )z#-> makes update for all vemli files)r   r   velop: z needs no renewalFzvelop loads u    … T )flushenddone)r7      zvelop: I work on zvelop wrote *.lensu.json.gz)r   r   	out_fufisr   filerdonerer   r/   	run_entsiget_issuedateactive_issuedatesload
feed_papidsortedr   keysdumpclear_by_extension)r   r   	max_filesr   r   vemli_fufiscount_filesout_fufi
vemli_fufi	issuedatepapids_vemlispapidr   outnumbersr2   s                   r    updatezVelop.updateQ   s   <FF
 jj**H*= ??||Hk2z):;<NN%J++J7I 3 33nz1G; b*!JJz2MfD)&%e,u- ' 1K$	)A))56% &* **,-F,,v.CK 

3!nx'($$X/@AnnS!
r"   c                     | xj                   dz  c_         t        |j                               dz
  }| xj                  |z  c_        || j                  vrd| j                  |<   y | j                  |xx   dz  cc<   y )Nr:      )r   r,   splitr   r   )r   rO   r   r2   s       r    rC   zVelop.feed_papid   sj    QU[[]#a'f$%#$DLL V!r"   c                     d}| j                   j                  | j                  j                  d   |      }|t	        d|        yt        j                  |      }|S )z7loads last lensu.json.gz file fit_count --> paper_countr;   r
   Nzvelop has not file )r   last_by_mtimer   r   r/   r=   rB   )r   r   r%   datas       r    rB   z
Velop.load   sW      {{((W)=sC<'u-.zz$r"   c                    t        j                  | j                  | j                  g      s:| j                  r-d| j                   d}|d| j                   z  }t        |       yd}|t        j                  | j                        }|D ]
  }|||   z  } i }d }|j                         D ]*  }t        ||         |z  }||||<   |}||   |z   ||<   |}, d}|D ]^  }t        ||         }	|	dk  rd||<   |	dk\  rd||<   'd|	z  t        j                  |	      z  t        |      z  ||<   ||   |kD  sZ||   }` |}
|D ]  }||   dk(  r||   |
k  s||   }
 |D ]  }||   dk(  s|
||<    t        j                  | j                  |       | j                   t        j                  | j                  d       |S )	Nr5   z	 needs noz update over Fr   r:   z*.entsi.json.gz)r=   r>   r   r   r   r/   rB   rE   intfloatmathlog2rF   r   rG   )r   lensumr0   countentsipreviousfreqmaxir.   minis              r    r?   zVelop.run_entsi   s   ||DOOdoo->?doo.i8}T__$566a=JJt/EEU5\!E ZZ\EuU|$u,D#e  ?T1E%LH " E%,'Ez ez e;5)99E%LHE%LU|d"U|  EU|q U|d"U|	 
 EU|q #e  	

4??E*== $$T__6GHr"   )FN)FNN)N)
__name__
__module____qualname__r!   r   r3   rR   rC   rB   r?    r"   r    r   r      s(    #J"M$1r	"
6r"   r   )__doc__r=   r]   r   r   r
   r   r   r   r   r   r   rj   r"   r    <module>rl      s(    !      I Ir"   