a
    a                     @   sj   d dl Z d dlZ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)Krikt)Nafra)Natli)Tofdec                   @   sV   e Zd Zdd ZdddZddd	Zdd
dZdd Zdd ZdddZ	dddZ
dS )Alfitc                 C   sf   || _ t| j | _t| j | _t| j | _t| j | _| j j	d | _
i | _i | _t|drb|j| _d S )Nalfit
do_verbose)er   tofder   kriktr   nafrar   natlidirsfolderisdat
inkri_datahasattrr   )selferimp r   !/home/ernad/ernad/python/alfit.py__init__   s    
zAlfit.__init__
new_to_oldc                 C   s:   | j d }t|}|dkr*t| |S t|dd}|S )z&-> list of alfit files, excludes seedsz
/*.json.gzrandomT)reverse)r   globr   shufflesorted)r   orderglob_string	out_fufisr   r   r   r        s    


zAlfit.out_fufisFNc                 C   s,   | j jdd}|D ]}| j|||d qdS )z#-> makes update for all krikt filesr   )r   )r   only_issuedateN)r   r    update_for_krikt_fufi)r   r   r!   Zkrikt_fufisfufir   r   r   update*   s
    zAlfit.updatec                 C   s  t |}d}|d ur|d ur*||kr*dS | jdrn| jd | d }| jjd d | | }| j|}q| jjd d | | }| j|}| jd | | }n4tj	
|}	|	d }| jj}
|	d |
 | }|	d	 }|g}|d ur|| |d ur|| t ||s*|r&td
|  |S |r<td|  i | _t || jd< |rdtd|  t || jd< |rtd|  t || jd< i | _| jd D ]}i | j|< | | qt || j td|  i | _|S )N.json.gzFz/class/z.alfit.json.gzr   z/alfit.json.gzz/tofde.z/nafra.json.gzzalfit doneres alfit loads kntzalfit wrote )filerget_issuedater   endswithr	   r   r
   r#   ospathdirnamer   sigappenddonereprintdataloadf
feed_papiddump)r   
krikt_fufir   r!   	issuedateZjgzout_fufiZ
nafra_fufiZ
tofde_fufifudir1   in_fufispapidr   r   r   r"   1   sZ    




zAlfit.update_for_krikt_fufic                 C   s$  | j d | }d|v r:|d D ]}|dkr,q| || qd|v rr|d D ]&}d|vrXqJ| j|}| || qJdD ]}| || qv|| j d v rd| j d | v r| j d | d }|D ]}| j|||| d	 q|| j d v r | j d | }|D ]$}|dkr
q| j|||| d	 qd S )
Nr(   I r*    )STr*   r)   p)count)r5   add_fitr   process_fieldadd_split_papid_krikt)r   r?   r(   fitletterZp_dataZt_datar   r   r   r8   i   s2    
zAlfit.feed_papidc                 C   sR   | j d | }||vrdS || D ]*}| j|}| D ]}| || q:q"dS )Nr(   FT)r5   r   rH   splitrG   )r   r?   rK   r(   partrJ   r   r   r   rI      s    zAlfit.add_split_papid_krikt   c                 C   s:   || j | vr || j | |< dS | j | |  |7  < dS )NT)r7   )r   r?   rJ   rF   r   r   r   rG      s
    zAlfit.add_fitc                 C   s   |d u rht | jdkr:ddlm} || j| _| j | _|| jvr^td| d tjd d S | j| }|| j	vr| j
d | d }tj|std| tjd d S | jrtd	| d
ddd t|| j	|< | jrtddd || j	| vrtd| d| tjd d S | j	| | S )Nr   )Inkrizalfit see no z in your inkri data)filer&   r%   zalfit does not see r'   z  ... rA   T)endflushdone)rR   zalfit has no data for z in )lenr   ZinkrirO   r	   r6   r4   sysstderrr   r   r.   r/   isfiler   r+   )r   r?   r;   rO   r#   r   r   r   fetch   s:    


zAlfit.fetch)r   )FN)FN)rN   )N)__name__
__module____qualname__r   r    r$   r"   r8   rI   rG   rX   r   r   r   r   r      s   


  
8"

r   )r.   r   r   rU   r+   r   r   r   r   r   r   r
   r   r   r   r   r   r   <module>   s   