
    *?h2%                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr   " S S5      rg)	    N)Caler)Krikt)Natli)Trito)Spanac                   b    \ rS rSrS rSS jrSS jrSS jrSS jrSS jr	SS	 jr
S
 rS rSrg)Tofde   c                    Xl         [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l        [        U R                   5      U l
        U R                  R                  5       U l        U R                  c  [        S5      eU R                  R                  U l        U R                   R                  S   U l        0 U l        g)zdetermine frases in S kritNz$tofde can't run without a nafli_fufitofde)er   calerr   kriktr   tritor   natlir   spanafufi
natli_fufi	Exceptionsigdirsfolderd)selferimps     !/home/ernad/ernad/python/tofde.py__init__Tofde.__init__   s    466]
466]
466]
466]
466]
**//+??"BCC::>> ffkk'*    c                     U R                   S-   n[        R                  " U5      nUS:X  a  [        R                  " U5        U$ [	        USS9nU$ )z/-> list of tofde files, excludes reports tofdesz
/*.json.gzrandomT)reverse)r   globr!   shufflesorted)r   orderglob_string	out_fufiss       r   r(   Tofde.out_fufis%   sJ    kkL0IIk*	HNN9%9d3	r   c                    U R                   nU R                  R                  nU SU SU S3n[        R                  R                  U5      (       a  U$ US-   nU R                  R                  R                  XGS9nU(       d  U$ U R                  R                  U5      n	U R                  U	5      n
[        R                  R                  U5      (       a  U$ U
b  U
SL d  [        SU-   5        U$ )z&-> get the tofde fufi for an issuedate/_.json.gzz
_*.json.gz)searchFztofde return on outdated )r   r   r   ospathisfiler   r   last_by_mtimer   r   update_for_krikt_fufiprint)r   	issuedate	do_update
do_verbose	tofde_dirr   r   r.   	last_fufiin_fufiouts              r   r   
Tofde.fufi/   s    
 KK	jjnnAi[#h777>>$K\)FFHH**9*D	**//),((177>>$Kse|-	9:r   Nc                    U R                   R                  SS9nU(       a"  [        SU R                  R                  -   5        U H@  n[
        R                  R                  U5      nUSS nUb  Xb:w  a  M1  U R                  XAS9  MB     g)z -> makes update from krikt filesr!   )r&   ztofde uses r   
   Nr7   )	r   r(   r4   r   r   r/   r0   basenamer3   )r   r7   only_issuedatekrikt_fufisr   banar5   s          r   updateTofde.updateH   sz    jj***:-$**..01D77##D)DQr
I).&&t&C  r   c                 D   [         R                  " U5      nU R                  R                  nUct  [        R
                  R                  U5      nU R                  S-   nUS-   U-   n[         R                  " Xa/5      (       d  [        SU SU 35        g[        SU-   5        GO,U R                  S-   U-   S-   U R                  -   S-   nU R                  R                  S	5      (       a&  U R                  S-   U-   S-   U R                  -   S-   nOU[        R                  " 5       :X  d  U[        R                  " 5       :X  a&  U R                  S-   U-   S-   U R                  -   S-   nOiU R                  R!                  U5      (       dI  [        S
U S35        U R                  S-   U-   S-   n[        SU 35        [         R"                  " U5        g [         R                  " Xa/5      (       d  U(       a  [        SU-   5        U$ [$        R&                  " US5        U(       a  [        SU-   5        [)        U R*                  5      S:X  a  U R,                  R/                  5       U l        [         R0                  " U5      n0 U l        U H  n	U R5                  X   U	SS9  M     [)        U R2                  5      S:X  a  [        SU-   [6        R8                  S9  g [         R:                  " X`R2                  5        [        SU-   5        [$        R<                  " U5        0 U l        U$ )Nz.tofde.json.gzr+   ztofde doneres z over Fztofde: seed case to r,   r-   z/classztofde skips z out of didspi*ztofde clears i  ztofde loads r   r?   ztofdes got nothing from )fileztofde wrote )filerget_issuedater   r7   r/   r0   dirnamer   donerer4   r   endswithdatertodaytonightr   is_it_in_trainclear_by_globlockerplacelenr   r   getloadf
feed_papidsysstderrdumpremove)
r   r   r7   r5   fudirC   out_fufir'   r   papids
             r   r3   Tofde.update_for_krikt_fufiV   s   ''-	VV&&
77??4(D88..DczD(H<<&11xjtf=> (834{{S(94s:%&H {{##H--;;,y83>HH/0 ekkm+yEMMO/K;;,y83>HH)* zz00;;L>BC"&++"3i"?#"EKM+78''4 ||Hf--&12OXt$.4'( tvv;!ZZ^^%DFJJtEOOAHeO>  tvv;!,t3zz#

8VV$nx'(hr   c                     0 nSU;  a  g US    H6  nU R                  XSS9nU H  nXt;  a  Xg   XG'   M  XG==   Xg   -  ss'   M      M8     X@R                  U'   g)NSr?   T)scanrX   )r   r   r`   r7   foundpartfrasesfrases           r   rY   Tofde.feed_papid   sj    e#JDYYtY;F%#)=EL-	    ur   c                 T   U R                   R                  U5      nUR                  5       n[        U5      n0 nU R                  nSnU(       a  [        SU-   S-   5        XtS-
  :  Ga  US-  nX7   nX7S-      n	X;  a  U(       a  [        SU-   S-   5        M8  XU   ;  a   U(       a  [        SU-   S-   U	-   S-   5        M`  SU l        US	-   U	-   n
U(       a  [        S
U
-   5        Xh   U	   nU(       a  [        S[        U5      -   5        [        S U 5       5      (       aF  X;  a  SXZ'   OXZ==   S-  ss'   [        U5      S:X  a!  U(       a  [        S[        U5      -   5        GM  U R                  U5      nUS-   nU(       a"  [        S[        U5      -   5        [        S5        U R                  XUS  5      nU(       a  [        SU-   S-   5        U HG  nUc  M  X;   d  M  U
S	-   U-   nUU;  a  SUU'   OUU==   S-  ss'   U(       d  M9  [        SU-   5        MI     XtS-
  :  a  GM  U$ )Nr,         z
no first ''z' no 'r    zbase:zsticks c              3   (   #    U  H  oS L v   M
     g 7f)N ).0xs     r   	<genexpr>Tofde.scan.<locals>.<genexpr>   s     -f9fs   zpass at zlongest_ahead 	remainingzremaining 'z	I append )r   process_fieldsplitrU   r   r4   extentstranylongest_aheadfrase_ahead)r   rf   r7   termsmax_lenrg   r   count_startfirstseconbasesticksr|   ahead_startr}   stickto_adds                    r   rd   
Tofde.scan   s"   zz''- 

e*FF#*s"#aK'1K&E/*E~,.45eH$#+0583>?DK3;&Dgn%Xe_Fi#f+-.-f---%#$FLLA%Lv;!#!j3v;67 ..v6M%/K&]);;<k"**=:MNKmk1C78='!CZ%/FV+)*vv!+!zkF23  M aK'b r   c                 ~    SnU H4  nUc  M  UR                  5       nU[        U5      :  d  M)  [        U5      nM6     U$ )z measures the longest frase aheadr   )rx   rU   )r   rg   r|   rh   wordss        r   r|   Tofde.longest_ahead   sA    E}KKMEs5z) #E
  r   c                 `    [        U5      nX-
  nUS:  a  X-  nSR                  USU 5      nU$ )Nr   ro   )rU   join)r   aheadr   	len_wordsdiffrh   s         r   r}   Tofde.frase_ahead   s:    J	 !8MEq(r   )r   r   r   ry   rX   r   r   r   r   r   r   r   )
new_to_old)TF)FN)F)__name__
__module____qualname____firstlineno__r   r(   r   rD   r3   rY   rd   r|   r}   __static_attributes__rq   r   r   r	   r	      s2    &2D>X=@	r   r	   )r#   r/   rZ   r!   rN   rI   rS   r   r   r   r   r   r   r   r   r   r   r	   rq   r   r   <module>r      s5     	 
         t tr   