
    /g8                     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  G d d      Z	y)    N)Krikt)Tritoc                   R    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y)Nafrac                     || _         t        | j                         | _        i | _        i | _        i | j                  d<   i | j                  d<   g d| _        t        | j                         | _        y )Npt),;/z--)er   tritofnsepsr   krikt)selferimps     !/home/ernad/ernad/python/nafra.py__init__zNafra.__init__   s]    466]
 ss)	 466]
    c                     | 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_fufisF   s;    ffkk'*\9IIk*	 9d3	r   Nc                     | j                   j                         }d}|D ]9  }t        j                  |      }|||k7  r ||kD  r|}| j	                  ||       ; y)z#-> makes update for all krikt files N)
do_verbose)r   r    filerget_issuedateupdate_for_krikt_fufi)r   r#   do_only_issuedatekrikt_fufismax_issuedatefufi	issuedates          r   
update_allzNafra.update_allP   sg    jj**,D++D1I
 !, 11=( )&&t
&C  r   c                    t        j                  |      }|'t        j                  j	                  |      dz   }d }i }n| j
                  j                  d   dz   |z   dz   }| j
                  j                  d   dz   |z   dz   }t        j                  j                  |      sYt        j                  j                  | j
                  j                  d         rt        d| t        j                         d }i }nt        j                  |      }t        j                  |||g      s|rt        d| d	|        y
|rt        d|z          t        j                  |      }i | _        |D ]+  }||vsd||   vrd ||<   | j                  ||   ||   |       - t!        | j                        dk(  rt        d|z   t        j                         y
t        j"                  || j                         i | _        y )Nz/nafra.json.gzr   r   z.json.gzspakrznafra does not see )fileznafra doneres z over Fznafra loads Sr   znafras got nothing from )r$   r%   ospathdirnamer   r   isfileisdirprintsysstderrloaddonerer   
feed_papidlendump)	r   
krikt_fufir#   r+   out_fufi
spakr_fufi
spakr_data
krikt_datapapids	            r   r&   zNafra.update_for_krikt_fufia   s   ''
3	wwz25EEHJJ vv{{7+c1I=
JHW-3i?*LJ77>>*- 77==W!56/
|<"zz+ "

"ZZ
3
||Hz:&>?xjzlCD.:-.ZZ
+
EJ&3j6G+G$(
5!OOJu-z%/@%H	  
 tvv;!,z9zz#

8TVV$r   c                    | j                  |       dD ]  }||vr| j                  |||   |        |y|d   D ]B  }|j                         }|| j                  |   d   v r(|d   |   | j                  |   d   |<   D y)N)r	   Tr   PTr0   r	   )
reset_data	deal_withlowerr   )r   r   r.   rC   letterfitlc_fits          r   r;   zNafra.feed_papid   s    *FU"NN65=%8 +
 =:CYY[Fs++ */sCDFF5M#v&  r   c                 j    i | j                   |<   i | j                   |   d<   i | j                   |   d<   y )Nr   r	   )r   )r   rC   s     r   rG   zNafra.reset_data   s3    uucucr   c                 t    | j                   }|j                  |k(  r| j                  }|D ]  } ||||        y)z send to deal with upper or lowerN)deal_with_upperrI   deal_with_lower)r   rJ   datarC   dovs         r   rH   zNafra.deal_with   s:    !!<<6!%%BAvq%  r   c                    |j                         }d|vry| j                  }d}d}|D ]  }	|j                  |	      }
|
|kD  s|	}|
} |'|rt        d|z          | j	                  ||g|       |gS |j                  |      }|D ]3  }| j                  j                  |      }d|vr#|j                  d      }5 | j	                  |||       |S )z deals krkits that need splitting Nr   z
no sep in .)	rI   r   countr6   	add_partssplitr   process_fieldrstrip)r   arearS   rC   r#   llr   	max_countmax_sepsep	count_seppartsparts                r   rO   zNafra.deal_with_upper   s    ZZ\a<yy	CI9$%		 
 ?lQ&'NN2sE*3J D::++A.D $;;s#D  	r5%(r   c                     | j                   j                  |      }|j                  d      }|j                  d      }d|vry| j                  ||g|       y)z*deals with the krikt that don't need splitrV   rU   N)r   rZ   r[   rX   )r   r\   rS   rC   r#   rc   s         r   rP   zNafra.deal_with_lower   sN    zz''*{{3{{3d?tdVU+r   c                 &   |y |D ]  }| j                   j                  |      }|j                         }d|vr3|j                         }|| j                  |   |   vrd| j                  |   |   |<   m| j                  |   |   |xx   dz  cc<    y )NrU      )r   rZ   striprI   r   )r   r\   rb   rC   rc   s        r   rX   zNafra.add_parts   s    =D::++D1D::<D$::<D466%=..,-ud#D)FF5M$%*% r   )
new_to_old)FN)F)__name__
__module____qualname__r   r    r,   r&   r;   rG   rH   rO   rP   rX    r   r   r   r      s7    RD")V0 !<,+r   r   )
r   r1   r7   daterr$   r   r   r   r   r   rl   r   r   <module>rn      s,     	 
    L+ L+r   