o
    ?b                     @   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                   @   sZ   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r1|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rS|d ur||krdS | jdr7| jd | d }| jjd d | | }| j|}n6| jjd d | | }| j|}| jd | | }ntj	
|}	|	d }| jj}
|	d |
 | }|	d	 }|g}|d ury|| |d ur|| t ||s|rtd
|  |S |rtd|  i | _t || jd< |rtd|  tj	|std| dtjd t  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alfit does not see z
, gives upfilentzalfit wrote )filerget_issuedater   endswithr	   r   r
   r#   ospathdirnamer   sigappenddonereprintdataloadisfilesysstderrquitf
feed_papiddump)r   
krikt_fufir   r!   	issuedateZjgzout_fufiZ
nafra_fufiZ
tofde_fufifudir4   in_fufispapidr   r   r   r"   1   sd   



zAlfit.update_for_krikt_fufic                 C   s$  | j d | }d|v r|d D ]}|dkrq| || qd|v r9|d D ]}d|vr,q%| j|}| || q%dD ]}| || q;|| j d v rld| j d | v rl| j d | d }|D ]}| j|||| d	 q_|| j d v r| j d | }|D ]}|dkrq|| j|||| d	 q|d S d S )
Nr(   I r-    )STr-   r,   p)count)r8   add_fitr   process_fieldadd_split_papid_krikt)r   rF   r(   fitletterZp_dataZt_datar   r   r   r?   m   s6   zAlfit.feed_papidc                 C   sR   | j d | }||vrdS || D ]}| j|}| D ]}| || qqdS )Nr(   FT)r8   r   rO   splitrN   )r   rF   rR   r(   partrQ   r   r   r   rP      s   zAlfit.add_split_papid_krikt   c                 C   s:   || j | vr|| j | |< dS | j | |  |7  < dS )NT)r>   )r   rF   rQ   rM   r   r   r   rN      s
   zAlfit.add_fitc                 C   s  |d u r4t | jdkrddlm} || j| _| j | _|| jvr/td| d tjd d S | j| }|| j	vrr| j
d | d }tj|sStd| tjd d S | jratd	| d
ddd t|| j	|< | jrrtddd || j	| vrtd| d| tjd d S | j	| | S )Nr   )Inkrizalfit see no z in your inkri datar*   r&   r%   r)   r'   z  ... rH   T)endflushdone)rX   zalfit has no data for z in )lenr   ZinkrirV   r	   r9   r7   r;   r<   r   r   r1   r2   r:   r   r.   )r   rF   rB   rV   r#   r   r   r   fetch   s:   


zAlfit.fetch)r   )FN)rU   )N)__name__
__module____qualname__r   r    r$   r"   r?   rP   rN   r[   r   r   r   r   r      s    



<"

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