
    $Wd                     L    d dl Z d dlZd dlZd dlZd dlmZ  G d d          ZdS )    N)Kriktc                   T    e Zd Zd ZddZddZddZd Zd	 Zd
 Z	ddZ
ddZd ZdS )Nafrac                     || _         i | _        i | _        i | j        d<   i | j        d<   g d| _        t	          | j                   | _        d S )Npt),;/z--)efnsepsr   krikt)selferimps     !/home/ernad/ernad/python/nafra.py__init__zNafra.__init__   sR     ss)))	 46]]
t    
new_to_oldc                 z    | j         j        d         dz   }t          j        |          }t          |d          }|S )z-> list of nafra filesnafraz
/*.json.gzT)reverse)r   dirsglobsorted)r   orderglob_string	out_fufiss       r   r   zNafra.out_fufisC   s>    fk'*\9Ik**	 9d333	r   FNc                     | j                                         }d}|D ]S}t          j                            |          }|dd         }|||k    r4||k    r|}|                     ||           TdS )z#-> makes update for all krikt files r   
   N)
do_verbose)r   r   ospathbasenameupdate_for_krikt_fufi)r   r#   do_only_issuedatekrikt_fufismax_issuedatefufibana	issuedates           r   
update_allzNafra.update_allM   s    j**,, 	D 	DD7##D))DQrT
I , 111=(( )&&t
&CCCC	D 	Dr   c                 \   t          j        |          }|%t          j                            |          }|dz   }n| j        j        d         dz   |z   dz   }t          j        ||g          s|rt          d|z              dS |rt          d|z              t          j	        |          }i | _
        |D ]}|                     ||         |           t          | j
                  dk    r t          d	|z   t          j        
           dS t          j        || j
                   i | _
        d S )Nz/nafra.json.gzr   r   z.json.gzznafra doneres Fznafra loads r   znafras got nothing from )file)filerget_issuedater$   r%   dirnamer   r   donereprintloadr   
feed_papidlensysstderrdump)r   r+   r#   r-   fudiout_fufidpapids           r   r'   zNafra.update_for_krikt_fufi[   sD   '--	7??4((D..HH v{7+c1I=
JH|Htf-- 	 3&12225 	).4'(((Jt 	- 	-EOOAeHe,,,,tv;;!,t3z# # # #5
8TV$$$r   c                 ~    |                      |           dD ]$}||vr|                     |||         |           %dS )N)r   Tr   PT)
reset_data	deal_with)r   r   r?   letters       r   r7   zNafra.feed_papidu   sS    * 	9 	9FU""NN65=%8888tr   c                 Z    i | j         |<   i | j         |         d<   i | j         |         d<   d S )Nr   r   )r   )r   r?   s     r   rC   zNafra.reset_data   s3    uucucr   c                 \    | j         }|j        |k    r| j        }|D ]} ||||           dS )z send to deal with upper or lowerN)deal_with_upperlowerdeal_with_lower)r   rE   datar?   dovs         r   rD   zNafra.deal_with   sO    !<6!!%B 	! 	!ABvq%    	! 	!r   c                    |                                 }d|vrdS | j        }d}d}|D ]!}	|                    |	          }
|
|k    r|	}|
}"|/|rt          d|z              |                     ||g|           |gS |                    |          }|D ]6}| j                            |          }d|vr!|                    d          }7|                     |||           |S )z deals krkits that need splitting Nr   z
no sep in .)	rI   r   countr5   	add_partssplitr   process_fieldrstrip)r   arearM   r?   r#   llr   	max_countmax_sepsep	count_seppartsparts                r   rH   zNafra.deal_with_upper   s   ZZ\\a<<4y	 	& 	&CI9$$%	? (lQ&'''NN2sE***3J   	$ 	$D:++A..D$;;s##DDr5%(((r   c                     | j                             |          }|                    d          }|                    d          }d|vrdS |                     ||g|           dS )z*deals with the krikt that don't need splitrP   rO   N)r   rT   rU   rR   )r   rV   rM   r?   r#   r]   s         r   rJ   zNafra.deal_with_lower   se    z''**{{3{{3d??FtdVU+++++r   c                 @   |d S |D ]}| j                             |          }|                                }d|vr5|                                }|| j        |         |         vrd| j        |         |         |<   u| j        |         |         |xx         dz  cc<   d S )NrO      )r   rT   striprI   r   )r   rV   r\   r?   r]   s        r   rR   zNafra.add_parts   s    =F 		+ 		+D:++D11D::<<D$::<<D46%=...,-ud#D)F5M$%%%*%%%%		+ 		+r   )r   )FN)F)__name__
__module____qualname__r   r   r.   r'   r7   rC   rD   rH   rJ   rR    r   r   r   r      s          P   D D D D   4	 	 	     ! ! !   6, , , ,+ + + + +r   r   )r   r$   r9   r1   r   r   r   re   r   r   <module>rf      s}     				 



       g+ g+ g+ g+ g+ g+ g+ g+ g+ g+r   