
    DEg                     L    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5      rg)    N)Nafrac                   `    \ rS rSrS rS rSS jrSS jrS rSS jr	S r
SS	 jrS
 rS rSrg)Natli   c                    Xl         [        U R                   5      U l        0 U l        0 U l        SU R                  S'   SU R                  S'   [        U R                  S   5      U l        U R                  U R                  5       5      U l	        g )Nz.natli.json.gznatliz.tofde.json.gztofde)
er   nafratofrasextlenlen_ext	signaturefufisig)selferimps     !/home/ernad/ernad/python/natli.py__init__Natli.__init__   sn    466]
,,488G,->>$))+.    c                 R    U R                  5       n[        R                  " U5      nU$ )N)r   filerload)r   r   ds      r   get	Natli.get&   s     yy{JJtr   c                 6   0 nSnSnU R                    H  nUS-  nUR                  5       n[        U5      S:  a   [        SU-   S-   [        R
                  S9  MG  XPR                   U   -  nUS   nX;  a  0 X8'   US   n	XU   ;  a  / X8   U	'   S n
[        U5      S:  a  SR                  USS  5      n
X8   U	   R                  U
5        M     X0l        U(       a4  [        [        U5      S-   5        [        [        U5      S	-   5        X@l
        XPl        X@l
        U$ )
Nr         znatli skips the invalid frase ''file z phrasez phrase occurences)r   splitr   printsysstderrjoinappenddetstrcount_frasescount_words)r   frases
do_verboser,   r.   r/   frasewordsfirstseconrests              r   build_tof_detectorNatli.build_tof_detector-   s%   [[EALKKME5zA~7%?#E::' ;;u--K!HE
!HEJ&$&
5!D5zA~xxab	*Ju$$T*) !. #l#i/0#k"%99: ,&(
r   c                    [        U R                  5      S:X  a  U R                  XS9  U R                  U R                  US9  [        R
                  " U R                  5      n[        R
                  " U R                  5      nU R                  nU SU SU 3U l	        U R                  SU R                  5        U R                  SU R                  5        g)z,-> write the t detertor, called by bin/natlir   )r1   	max_filesr1   _r	   r   N)r   r   	compose_tr7   tinnusmaker.   r/   max_issuedater   	write_libr,   )r   r1   r:   r.   r/   	issuedates         r   write_tof_detectorNatli.write_tof_detectorQ   s    t{{q NNjNF
C{{4#4#45kk$"2"23&&	[,q>w)w,r   c                 ,   U R                   U   nU R                  R                  S   nUS-   S-   U-   n[        R                  " U5       H  n[        R
                  " U5        M     U R                   U 3nUS-   U-   n[        R                  " Xb5        g )Nfitli/*)	r   r
   dirsglobosremover   r   dump)r   namewhatr   fudiglob_stringr   finas           r   rA   Natli.write_lib`   s~    hhtnvv{{7#Sj3&,IIk*DIIdO +((C5!czD 

4r   c                 f   U R                   nUR                  R                  UR                  S   SU R                  S   -   S9nUc?  U(       a(  [        S[        R                  S9  U R                  5         U R                  USS9  U(       a  [        S	U-   5        U R                  U5      U l        U$ )
z-> gives the last fufirF   rH   r	   )searchz#natli has no tofde in the fitli dirr#   T)r1   do_warnzThe natli is )r
   r   last_by_mtimerI   r   r'   r(   r)   rC   r   r   r   )r   r1   rV   r
   r   s        r   r   
Natli.fufij   s    FFss  !%'!2:3  4< ;::''')IITI:/D()>>$'r   c                     Uc  g[         R                  R                  U5      nUSS  nU R                  nUSU*  nX l        U$ )N 
   r    )rK   pathbasenamer   r   )r   r   r   r   s       r   r   Natli.signature|   sI    <ggt$"#h,,!WHo
r   c                 l   U R                   R                  5       nSU l        SnU H  nU(       a  [        SU-   5        [        R
                  R                  U5      nUSS nXpR                  :  a  Xpl        U(       a  [        SU-   5        U R                  U5        US-  nUS:  d  M  XB:  d  M    g   g)zfor the topics onlyrZ   r   zcompose_t reads r[   znatli loads r    N)r   	out_fufisr@   r'   rK   r\   r]   read_tof_fufi)r   r1   r:   fufiscount_filesr   banarB   s           r   r=   Natli.compose_t   s    

$$&D(4/077##D)DQr
I---%."nt+,t$1K1}!9 r   c                 h   [        U R                  5      S:X  a  U R                  US9  SnSnU R                   H  nUS-  nX0R                  U   -  nM     [        R                  " U5      n[        R                  " U5      nU R
                  nU R                  nU R                  R                  S   nUS-   S-   U-   n[        R                  " U5       H  n	[        R                  " U	5        M     U SU SU U 3n
US-   U
-   n	[        R                  " XR                  5        [        SU	-   5        g	)
z-> write the t fases NOT USEDr   r;   r    rF   rG   rH   r<   zI wrote N)r   r   r=   r>   r?   r@   r   r
   rI   rJ   rK   rL   r   rM   r'   )r   r1   
count_keyscount_timesfitrB   r   rP   rQ   r   rR   s              r   write_tof_frasesNatli.write_tof_frases   s   t{{q NNjN1
;;C!OJ;;s++K  [[,
kk+.&&	hhvv{{7#Sj3&,IIk*DIIdO +Aj\;-u=czD 

4%j4 r   c                     [         R                  " U5      nU HX  nSX#   ;  a  M  X#   S   nU H>  nXPR                  ;  a  XE   U R                  U'   M%  U R                  U==   XE   -  ss'   M@     MZ     U$ )Nt)r   r   r   )r   r   datapapidt_datari   s         r   ra   Natli.read_tof_fufi   sw    zz$E$+%[%Fkk)'-{DKK$C FK/ 	 	  r   )
r.   r/   r,   r
   r   r   r@   r   r   r   N)F)Fr   )FF)__name__
__module____qualname____firstlineno__r   r   r7   rC   rA   r   r   r=   rj   ra   __static_attributes__ r   r   r   r      s5    "H-$&!,r   r   )rJ   rK   r(   r   r>   r   r   r   rw   r   r   <module>rx      s%     	 
   d dr   