a
    a                     @   sZ   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 d dl	m
Z
 G dd dZdS )    N)Alfit)Lensu)Fitli)Tifinc                   @   s^   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd ZdS )GrundFc                 C   s   || _ t| j | _t| j | _t| j | _| j jd | _| j jd | _| jd | _	| jd | _
d| _i | _|| _i | _d| _i | _|   | j  d S )Nfitliz/grund.json.gzz/grund_vemli.json.gzi  d   )er   alfitr   lensur   tifindirsfolderfufi
vemli_fufisizebeaks
do_verbosegrundmin_sizeZseredsimport_from_fitliZserve)selferimpr    r   !/home/ernad/ernad/python/grund.py__init__   s"    
zGrund.__init__c                 C   s   t | jd| _| j | _dS )z=fitli has common routines of dofre and ranfi, maybe for grundr   N)r   r	   r   r   r   r   r   r   r   r   %   s    zGrund.import_from_fitlic                 C   s*   ddl m} || j| _ | j | j dS )z---> feed an issue by issuedate into the grundr   )VemliN)vemlir   r	   Z
build_fufir   )r   r   r   r   r   r   /   s    zGrund.vemlic                 C   s  |    | jjd | d }t|}|D ]X}t|| | jk rDq*t| j| jk rt	d|  i }| 
||| |d< || |d< ||d< || j|< q*|| jv rq*| 
||| }|du rtd| d	 | jd
 }| j| d }||kr| jr*t	d|  q*tt|}	tt|}
t	d| d|	 d| d|
  dd | j|= i }||d< || |d< ||d< || j|< |   |    q*t	d| j  t| j| j dS )z--> produce vemli/.json.gzzgrund adds saiNz	sered of z	 is None.r   zgrund rejects zgrund admits  z, kicks out Tflushzgrund makes final save in )sortr
   r   filerloadlenr   r   r   print	sered_one	Exceptionpapidsr   strint
fill_seredr   dump)r   	issuedatein_fufidatapapidgpseredZworst_papidZworst_seredZprint_seredZprint_worst_seredr   r   r   
feed_issue5   sT    







zGrund.feed_issuec                 C   s`   i | _ tj| jrHtd| j d ddd t| j| _ tddd ntd | d	 | j S )
Nzgrund loads z ... T )r&   endZdoner%   zgrund: feed initiallyz
2018-02-04)	r   ospathisfiler   r+   r(   r)   feed_initialr   r   r   r   r)   d   s    
z
Grund.loadc                 C   s   t | jdkrtd |   | jr2tdddd | j}| jD ]V}| jr^td| d ddd | ||| d	 }| jrtt|dd
 ||| d< q>| jrtd| j  t	| j| j dS )zfills the sereds internallyr   zgrund loadszsered_fill ...r:   T)r;   r&   zgrund sereds z as ... r"   r%   r!   zgrund saves in N)
r*   r   r+   r)   r   r,   r/   r   r(   r2   )r   r   r6   r8   r   r   r   r1   o   s$    
zGrund.fill_seredc                    s    j d u rtd     jr(td t j  fdddd _ jrvtd jd  d	 t j  jd  d
   i } jD ]6} jrt|d	 t j | d
    j | ||< q| _ |S )Nzgrund loads, should notzgrund sortsc                    s    j |  d S )Nr!   )r   )xr   r   r   <lambda>       zGrund.sort.<locals>.<lambda>T)keyreversez	worst is r   r$   r!   )r   r+   r)   r   sortedr.   r/   )r   r   r6   r   r   r   r'      s&    

z
Grund.sortc           	      C   sf  d}| j }d| j vrD| j|| j|< || j v rD| j| | j | d< | j| }| j D ]|}||krbqTd| j | vr| j|| d | j|< | j| | j | d< n| j | d | j|< | j| }|| j||7 }qTt|}t|| jjvrtdt|  d| jjt|< t|| jj	vr>tdt|  d| jj	t|< || jjt|  | jj	t|  }|S )Nr   br"   z grund needs to set the relat of    z grund needs to set the cumul of )
r   r   r   Zcropror*   r/   r   Zrelatr+   Zcumul)	r   r6   Zfitsoutr   b1pb2lengthr   r   r   r,      s6    




zGrund.sered_onec                 C   s   i }| j jd | d }t|}|D ]8}t|| jk rZi }d |d< || |d< |||< q& q`q&|| _| jrttd | 	  | jrtd || _| 
  td| j  t|| j d S )Nr   r    r!   r"   zgrund fills seredzgrund has filled seredzgrund makes in initial save in )r
   r   r(   r)   r*   r   r   r   r+   r1   r'   r   r2   )r   r3   r   r4   r5   r6   r7   r   r   r   r?      s*    
zGrund.feed_initialc                 C   s   | j  t| j  dS )z)loads the alfits as they may have changedN)r)   r+   r   keysr   r   r   r   reload   s    zGrund.reloadN)F)__name__
__module____qualname__r   r   r   r9   r)   r1   r'   r,   r?   rN   r   r   r   r   r      s   

/&r   )r(   r<   sysr
   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   