o
    gc)*                     @   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)Entsi)Fitli)Tifinc                   @   sf   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d ZdS )GrundNFc                 C   s   || _ t| j | _t| j | _| j jd | _| jd | _|d ur*| jd | d | _| jd | _|d ur>| jd| d | _|d urL| jd | d | _d | _	|| _
t| j jd | _i | _|| _i | _t| j }| | _	i | _|   t|d	r~|j| _d S )
Nfitliz/grund.json.gzz/grund_.json.gzz/grund_vemli.json.gzz_vemli.json.gzz/grund_vemli_
grund_size
do_verbose)er   alfitr   tifindirsfolderfufi
vemli_fufidenomstyleintconfsizebeaksr
   grundr   loadseredsimport_from_fitlihasattr)selferimpr   r
   entsi 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   3   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   
build_fufir   )r   r$   r    r    r!   r%   =   s   zGrund.vemlic                 C   s*   t | j}| }|D ]}t| qd S )N)filerr   r   keysprint)r   datapapidspapidr    r    r!   showC   s
   
z
Grund.showc                 C   s  |    | jjd | d }t|}t| ds)ddlm} || j| _| j	  |D ]}t
| j| jk r]td|  i }| ||| |d< || |d< ||d	< |d d
ur\|| j|< q+|| jv rcq+| ||| }|d
u rztd| d tjd | jd }| j| d }	||	kr| jrt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/r   lensur   Lensuzgrund adds saiNz	sered of z	 is None.filezgrund rejects zgrund admits  z, kicks out Tflushzgrund makes final save in )sortr   r   r'   r   r   r/   r1   r   servelenr   r   r)   	sered_onesysstderrr+   r
   strr   
fill_seredr   dump)r   	issuedatein_fufir*   r1   r,   gpseredworst_papidworst_seredprint_seredprint_worst_seredr    r    r!   
feed_issueI   sZ   







zGrund.feed_issuec                 C   s   i | _ tj| jr&td| j d ddd t| j| _ tddd | j S td d	d
lm	} || j
}| }| | | j S )Nzgrund loads z ... T )r9   enddoner8   zgrund: feed initiallyr   )Ishus)r   ospathisfiler   r)   r'   r   ishusrO   r   oldest_datefeed_initial)r   rO   r4   oldest_issuedater    r    r!   r      s   

z
Grund.loadc                 C   s   t | jdkrtd |   | jrtdddd | j}| jD ]+}| jr/td| d ddd | ||| d	 }| jrDtt|dd
 ||| d< q|du rYtd|  ||= | jrctd| j  t	| j| j dS )zfills the sereds internallyr   zgrund loadszsered_fill ...rL   T)rM   r9   zgrund sereds z as ... r3   r8   r2   Nzgrund deletes zgrund saves in )
r<   r   r)   r   r
   r=   r@   r   r'   rB   )r   r   r,   rF   r    r    r!   rA      s*   
zGrund.fill_seredc                    s    j d u rtd     jrtd t j  fdddd _ jr;td jd  d	 t j  jd  d
   i } jD ]} jrTt|d	 t j | d
    j | ||< q@| _ |S )Nzgrund loads, should notzgrund sortsc                    s    j |  d S )Nr2   )r   )xr#   r    r!   <lambda>   s    zGrund.sort.<locals>.<lambda>T)keyreversez	worst is r   r7   r2   )r   r)   r   r
   sortedr+   r@   )r   r   r,   r    r#   r!   r:      s&   

z
Grund.sortc           
      C   s  d}| j }d| j vr"| j|| j|< || j v r"| j| | j | d< | j| }| j D ]>}||kr1q*d| j | vrP| j|| d | j|< | j| | j | d< n
| j | d | j|< | j| }|| j||7 }q*t|}| jdkrt|| jjvrt	dt|  d| jjt|< t|| jj
vrt	dt|  d| jj
t|< || jjt|  | jj
t|  }|S | jd u s| jdkrt|}	|	| jvrt	d	| tjd
 d S | j| | j|	  }|S td)Nr   br3   firstz grund needs to set the relat of    z grund needs to set the cumul of r   zgrund has no entsi for r5   zI can't see your style.)r   r   r   cropror<   r   r@   r/   relatr)   cumulr   r>   r?   r   	Exception)
r   r,   fitsoutr   b1pb2lengthslenr    r    r!   r=      sH   






zGrund.sered_onec                 C   s   i }| j jd | d }t|}|D ]}t|| jk r-i }d |d< || |d< |||< q || _| jr8td | 	  | jrCtd || _| 
  td| j  t|| j d S )Nr.   r   r2   r3   zgrund fills seredzgrund has filled seredzgrund makes in initial save in )r   r   r'   r   r<   r   r   r
   r)   rA   r:   r   rB   )r   rC   r   rD   r*   r,   rE   r    r    r!   rU      s*   
zGrund.feed_initialc                 C   s   |    | jD ]<}td|  d| j| vr!td| tjd q| j| d }| jj||d}|| j| d< | j| d= | j| d= qt| d	sZd
dlm	} || j
| _| j  | jratd |   | jrntddd td| j  t| j| j dS )z)loads the alfits as they may have changedzgrund reloads r4   zgrund has no issuedate for r5   )rC   r3   r\   r2   r/   r   r0   zgrund starts to fill sered.z"grund has finished the sered fill.Tr8   zgrund saves N)r   r   r)   r>   r?   r   fetchr   r/   r1   r   r;   r
   rA   r   r'   rB   )r   r,   rC   r   r1   r    r    r!   reload  s0   



zGrund.reload)NF)__name__
__module____qualname__r"   r   r%   r-   rK   r   rA   r:   r=   rU   rk   r    r    r    r!   r      s    
%
71r   )r'   rP   r>   r   r   r   r   r   r   r   r   r   r    r    r    r!   <module>   s    