
    efS                     x    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          ZdS )    N)Krikt)Nafra)Natli)Tofdec                   L    e Zd Zd ZddZddZ	 	 ddZd Zd	 ZddZ	ddZ
dS )Alfitc                 ^   || _         t          | j                   | _        t          | j                   | _        t          | j                   | _        t          | j                   | _        | j         j	        d         | _
        i | _        i | _        t          |d          r|j        | _        d S )Nalfit
do_verbose)er   tofder   kriktr   nafrar   natlidirsfolderisdat
inkri_datahasattrr   )selferimps     !/home/ernad/ernad/python/alfit.py__init__zAlfit.__init__   s    46]]
46]]
46]]
46]]
fk'*
5,'' 	/#.DOt    
new_to_oldc                     | j         dz   }t          j        |          }|dk    rt          j        |           |S t	          |d          }|S )z&-> list of alfit files, excludes seedsz
/*.json.gzrandomT)reverse)r   globr   shufflesorted)r   orderglob_string	out_fufiss       r   r$   zAlfit.out_fufis    sV    kL0Ik**	HN9%%%9d333	r   FNc                 v    | j                             d          }|D ]}|                     |||           dS )z#-> makes update for all krikt filesr   )r"   )r   only_issuedateN)r   r$   update_for_krikt_fufi)r   r   r&   krikt_fufisfufis        r   updatezAlfit.update*   sd    j***:: 	F 	FD&&t
6D ' F F F F	F 	Fr   c                    t          j        |          }d}||||k    rdS | j                            d          rF| j        dz   |z   dz   }| j        j        d         dz   |z   |z   }| j                            |          }n| j        j        d         dz   |z   |z   }| j                            |          }| j        dz   |z   |z   }n@t          j	        
                    |          }	|	dz   }| j        j        }
|	dz   |
z   |z   }|	d	z   }|g}||                    |           ||                    |           t          j        ||          s|rt          d
|z              |S |rt          d|z              i | _        t          j        |          | j        d<   |rt          d|z              t          j	                            |          s2t          d| dt&          j                   t+          d| d          t          j        |          | j        d<   |rt          d|z              |t+          d| d          t          j        |          | j        d<   i | _        | j        d         D ]!}i | j        |<   |                     |           "t          j        || j                   t          d|z              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	Exceptionf
feed_papiddump)r   
krikt_fufir   r&   	issuedatejgzout_fufi
nafra_fufi
tofde_fufifudir;   in_fufispapids                r   r'   zAlfit.update_for_krikt_fufi1   s   '
33	 ).. 5{##H-- ?;,y8;KK!V[1C7)CcI
!Z__Y77

 "V[1C7)CcI
!Z__Y77
;,y83> 7??:..D..H*.C	)C/#5J 00J<!OOJ'''!OOJ'''|Hh// 	 3&1222O 	/.:-...	J//	# 	/.:-...w~~j)) 	J>
>>>z# # # #H*HHHIIIJ//	# 	/.:-...H*HHHIIIJ//	#Ys^ 	# 	#EDF5MOOE""""
8TV$$$nx'(((r   c                    | j         d         |         }d|v r(|d         D ]}|dk    r	|                     ||            d|v r@|d         D ]7}d|vr| j                            |          }|                     ||           8dD ]}|                     ||           || j         d         v rQd| j         d         |         v r<| j         d         |         d         }|D ] }|                     ||||         	           !|| j         d         v r=| j         d         |         }|D ])}|dk    r	|                     ||||         	           (d S d S )
Nr/   I r4    )STr4   r3   p)count)r?   add_fitr   process_fieldadd_split_papid_krikt)r   rP   r/   fitletterp_datat_datas          r   rF   zAlfit.feed_papido   s   IcN5!!88v ) ) "99UC(((( !88v ) )c>>j..s33UC((((% 	6 	6F&&uf5555DIcN""dinU+++3.s3! @ @CLL6#;L????DIcN""Ys^E*F < <"99UCvc{;;;; #"< <r   c                     | j         d         |         }||vrdS ||         D ]I}| j                            |          }|                                D ]}|                     ||           JdS )Nr/   FT)r?   r   rZ   splitrY   )r   rP   r]   r/   partr\   s         r   r[   zAlfit.add_split_papid_krikt   s    IcN5!??5fI 	) 	)D:++D11Dzz|| ) )UC(((()tr      c                 ~    || j         |         vr|| j         |         |<   dS | j         |         |xx         |z  cc<   dS )NT)rE   )r   rP   r\   rX   s       r   rY   zAlfit.add_fit   sQ    
 dfUm##!&DF5M#4uce#tr   c                    |t          | j                  dk    r9ddlm}  || j                  | _        | j                                        | _        || j        vr#t          d|z   dz   t          j                   d S | j        |         }|| j	        vr| j
        dz   |z   dz   }t          j                            |          s t          d|z   t          j                   d S | j        rt          d	| d
dd           t          j        |          | j	        |<   | j        rt          dd           || j	        |         vr#t          d| d| t          j                   d S | j	        |         |         S )Nr   )Inkrizalfit see no z in your inkri datar1   r-   r,   r0   r.   z  ... rS   T)endflushdone)rh   zalfit has no data for z in )lenr   inkrirf   r   r@   r>   rB   rC   r   r   r8   r9   rA   r   r5   )r   rP   rI   rf   r)   s        r   fetchzAlfit.fetch   s   4?##q((''''''"U46]]
"&*//"3"3DO++o-0EE:' ' ' 't.IDJ&&;$y0:=D7>>$'' +d2:' ' ' 't G1T111rFFFF$)Jt$4$4DJy! *fD))))
9---A5AAiAAz# # # #4z)$U++r   )r   )FN)rc   )N)__name__
__module____qualname__r   r$   r*   r'   rF   r[   rY   rl    r   r   r   r      s             F F F F <A-1< < < <| <  <  <D  	 	 	 	, , , , , ,r   r   )r8   r   r   rB   r5   r   r   r   r   r   r   r   r   r   rp   r   r   <module>rq      s    				   



                         q, q, q, q, q, q, q, q, q, q,r   