
    DEg                         d dl Z 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 d dlmZ  G d d      Zy)	    N)Krikt)Nafra)Natli)Tofde)Tritoc                   \    e Zd ZddZd ZddZ	 	 ddZ	 	 ddZd Zd Z	dd	Z
dd
Zd Zy)Alfitc                    || _         t        | j                         | _        t        | j                         | _        t        | j                         | _        t        | j                         | _        t        | j                         | _
        | j                   j                  d   | _        i | _        i | _        | j                  dz   | _        | j                  dz   | _        t#        |d      r|j$                  | _        y )Nalfitz/grund.json.gzz/grond.json.gz
do_verbose)er   tofder   kriktr   nafrar   natlir   tritodirsfolderisdat
inkri_data
grund_fufi
grond_fufihasattrr   )selferimpr   s      !/home/ernad/ernad/python/alfit.py__init__zAlfit.__init__   s    466]
466]
466]
466]
466]
ffkk'*
++(88++(885,'#..DO    c                 $    | j                   dz   }|S )Nz
/*.json.gz)r   )r   fufis     r   
grund_filezAlfit.grund_file%   s    {{\)r   c                     | j                   dz   }t        j                  |      }|dk(  rt        j                  |       |S t	        |d      }|S )z&-> list of alfit files, excludes grundz/????-??-??.json.gzrandomT)reverse)r   globr#   shufflesorted)r   orderglob_string	out_fufiss       r   r*   zAlfit.out_fufis)   sK    kk$99IIk*	HNN9%9d3	r   Nc                 t    | j                   j                  d      }|D ]  }| j                  ||||        y)z#-> makes update for all krikt filesr#   )r(   )r   do_overwriteonly_issuedateN)r   r*   update_for_krikt_fufi)r   r   r-   r,   krikt_fufisr    s         r   updatezAlfit.update3   sC     jj***:D&&t
4@6D ' F  r   c                 D   t        j                  |      }|s3|| j                  j                  vr| j                  rt        d|        yd}||||k7  ry| j                  j                  d      rS| j                  dz   |z   dz   }| j                  j                  d   dz   |z   |z   }| j                  j                  |      }	n| j                  j                  d   dz   |z   |z   }| j                  j                  |      }	| j                  dz   |z   |z   }nJt        j                  j                  |      }
|
dz   }| j                  j                  }|
d	z   |z   |z   }	|
d
z   }|g}|	|j!                  |	       ||j!                  |       |s(t        j"                  ||      s|rt        d|z          |S |rt        d|z          i | _        t        j&                  |      | j$                  d<   |rt        d|z          t        j                  j)                  |      s.t        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 | j0                  |<   | j3                  |       $ t        j4                  || j0                         t        d|z          i | _        |S )Nzalfit skips non-active F.json.gzz/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   active_issuedatesr   printr   endswithr   r   r    ospathdirnamer   sigappenddoneredataloadisfilesysstderr	Exceptionf
feed_papiddump)r   
krikt_fufir-   r,   r   	issuedatejgzout_fufi
nafra_fufi
tofde_fufifudirC   in_fufispapids                 r   r.   zAlfit.update_for_krikt_fufi<   s   ''
3		1I1I I/	{;< ). {{##H-;;,y8;KK!VV[[1C7)CcI
!ZZ__Y7
 "VV[[1C7)CcI
!ZZ__Y7
;;,y83> 77??:.D..H**..C	)C/#5J 00J<!OOJ'!OOJ'ELL8$D&12O.:-.	J/		#.:-.ww~~j)'
|:>zz#1*ZHIIJ/		#.:-.1*ZHIIJ/		#YYs^EDFF5MOOE" $ 	

8TVV$nx'(r   c                 f   | j                   d   |   }d|v r"|d   D ]  }|dk(  r	| j                  ||        d|v r<|d   D ]4  }d|vr| j                  j                  |      }| j                  ||       6 dD ]  }| j	                  ||        || j                   d   v rGd| j                   d   |   v r3| j                   d   |   d   }|D ]  }| j                  ||||   	        || j                   d   v r7| j                   d   |   }|D ]  }|dk(  r	| j                  ||||   	       ! y y )
Nr5   I r:    )STr:   r9   p)count)rF   add_fitr   process_fieldadd_split_papid_krikt)r   rW   r5   fitletterp_datat_datas          r   rM   zAlfit.feed_papid   sQ   IIcN5!!8v "9UC(  !8vc>jj..s3 UC(  &F&&uf5 &DIIcN"diinU++3.s3!CLL6#;L? "DIIcN"YYs^E*F"9UCvc{;  #r   c                     | j                   d   |   }||vry||   D ]D  }| j                  j                  |      }|j                         D ]  }| j	                  ||        F y)Nr5   FT)rF   r   ra   splitr`   )r   rW   rd   r5   partrc   s         r   rb   zAlfit.add_split_papid_krikt   se    IIcN5!?fID::++D1D zz|UC( $  r   c                     || j                   |   vr|| j                   |   |<   y| j                   |   |xx   |z  cc<   y)NT)rL   )r   rW   rc   r_   s       r   r`   zAlfit.add_fit   sD    
 dffUm#!&DFF5M#uce#r   c                 *   |t        | j                        dk(  r<ddlm}  || j                        | _        | j                  j                         | _        || j                  vr"t        d|z   dz   t        j                         y | j                  |   }|| j                  vr| j                  dz   |z   dz   }t        j                  j                  |      st        d|z   t        j                         y | j                  rt        d	| d
dd       t        j
                  |      | j                  |<   | j                  rt        dd       || j                  |   vr"t        d| d| t        j                         y | j                  |   |   S )Nr   )Inkrizalfit see no z in your inkri datar7   r3   r2   r6   r4   z  ... rZ   T)endflushdone)rn   zalfit has no data for z in )lenr   inkrirl   r   rG   r>   rI   rJ   r   r   r@   rA   rH   r   r;   )r   rW   rP   rl   r    s        r   fetchzAlfit.fetch   sO   4??#q('"466]
"&**//"3DOO+o-0EE::'.IDJJ&;;$y0:=D77>>$'+d2::'TF&1rF$)JJt$4DJJy!fD)

9--*5'i[Azz#zz)$U++r   c                 d    || j                   vry| j                   |= t        j                          y)NFT)r   gccollect)r   rP   s     r   destroyzAlfit.destroy   s)    DJJ&JJy!


r   )F)
new_to_old)FNF)NFF)   )N)__name__
__module____qualname__r   r!   r*   r0   r.   rM   rb   r`   rr   rv    r   r   r	   r	      sJ    $ 7;!F @D=BAF#<J	,8r   r	   )r@   rt   r%   r#   rI   r;   r   r   r   r   r   r   r   r   r   r   r	   r|   r   r   <module>r}      s2    	 	   
      L Lr   