
    Pd                     T    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  G d d          ZdS )    N)Nafrac                   R    e Zd Zd Zd ZddZddZd ZddZd	 Z	dd
Z
d Zd ZdS )Natlic                     || _         t          | j                   | _        i | _        i | _        d| j        d<   d| j        d<   t          | j        d                   | _        |                     |                                           | _	        d S )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__zNatli.__init__   st    46]]
,,48G,-->>$))++..t    c                 V    |                                  }t          j        |          }|S )N)r   filerload)r   r   ds      r   getz	Natli.get&   s#    yy{{Jtr   Fc                    i }d}d}| j         D ]}|dz  }|                                }t          |          dk     r"t          d|z   dz   t          j                   P|| j         |         z  }|d         }||vri ||<   |d         }	|	||         vrg ||         |	<   d }
t          |          dk    rd                    |dd                    }
||         |	                             |
           || _        |rEt          t          |          dz              t          t          |          d	z              || _
        || _        || _
        |S )
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_detectorzNatli.build_tof_detector-   s|   [ 	+ 	+EALKKMME5zzA~~7%?#E:' ' ' ' 4;u--K!HECE
!HECJ&&$&E
5!D5zzA~~xxabb	**Ju$$T****  	-#l##i/000#k""%99::: ,D&(
r   r   c                    t          | j                  dk    r|                     ||           |                     | j        |           t	          j        | j                  }t	          j        | j                  }| j        }| d| d| | _	        | 
                    d| j                   | 
                    d| j                   dS )z,-> write the t detertor, called by bin/natlir   )r.   	max_filesr.   _r   r   N)r   r   	compose_tr4   tinnusmaker+   r,   max_issuedater   	write_libr)   )r   r.   r6   r+   r,   	issuedates         r   write_tof_detectorzNatli.write_tof_detectorQ   s    t{q  NNjINFFF
CCC{4#455k$"233&	>>,>>>>w)))w,,,,,r   c                     | j         |         }| j        j        d         }|dz   dz   |z   }t          j        |          D ]}t	          j        |           | j         | }|dz   |z   }t          j        ||           d S )Nfitli/*)	r   r	   dirsglobosremover   r   dump)r   namewhatr   fudiglob_stringr   finas           r   r=   zNatli.write_lib`   s    htnv{7#Sj3&,Ik** 	 	DIdOOOO(!C!!czD 
4r   c                 n   | j         }|j                            |j        d         d| j        d         z             }|H|r/t          dt          j                   |                                  | 	                    |d	           |rt          d
|z              | 
                    |          | _        |S )z-> gives the last fufirA   rC   r   )searchNz#natli has no tofde in the fitli dirr    T)r.   do_warnzThe natli is )r	   r   last_by_mtimerD   r   r$   r%   r&   r?   r   r   r   )r   r.   rP   r	   r   s        r   r   z
Natli.fufij   s    Fs  !%'!2:3  4 4<  *;:' ' ' ''')))IITI::: 	*/D()))>>$''r   c                     |dS t           j                            |          }|dd          }| j        }|d|          }|| _        |S )N 
   r   )rF   pathbasenamer   r   )r   r   r   r   s       r   r   zNatli.signature|   sP    <2gt$$"##h,!WH*o
r   c                 l   | j                                         }d| _        d}|D ]}|rt          d|z              t          j                            |          }|dd         }|| j        k    r|| _        |rt          d|z              |                     |           |dz  }|dk    r	||k    r dS dS )zfor the topics onlyrS   r   zcompose_t reads rT   znatli loads r   N)r
   	out_fufisr<   r$   rF   rU   rV   read_tof_fufi)r   r.   r6   fufiscount_filesr   banar>   s           r   r9   zNatli.compose_t   s    
$$&& 	 	D 1(4/0007##D))DQrT
I4---%." -nt+,,,t$$$1K1}}	!9!9	 	r   c                 $   t          | j                  dk    r|                     |           d}d}| j        D ]}|dz  }|| j        |         z  }t          j        |          }t          j        |          }| j        }| j        }| j        j        d         }|dz   dz   |z   }t          j	        |          D ]}	t          j        |	           | d| d| | }
|dz   |
z   }	t          j        |	| j                   t          d|	z              d	S )
z-> write the t fases NOT USEDr   r7   r   rA   rB   rC   r8   zI wrote N)r   r   r9   r:   r;   r<   r   r	   rD   rE   rF   rG   r   rH   r$   )r   r.   
count_keyscount_timesfitr>   r   rK   rL   r   rM   s              r   write_tof_fraseszNatli.write_tof_frases   s3   t{q  NNjN111
; 	, 	,C!OJ4;s++KK[,,
k+..&	hv{7#Sj3&,Ik** 	 	DIdOOOO==j==;===czD 
4%%%j4     r   c                     t          j        |          }|D ]U}d||         vr||         d         }|D ]7}|| j        vr||         | j        |<   | j        |xx         ||         z  cc<   8V|S )Nt)r   r   r   )r   r   datapapidt_datar`   s         r   rY   zNatli.read_tof_fufi   s    z$ 	0 	0E$u+%%%[%F 0 0dk))'-c{DK$C   F3K/    	0
 r   N)F)Fr   )FF)__name__
__module____qualname__r   r   r4   r?   r=   r   r   r9   ra   rY    r   r   r   r      s            " " " "H- - - -     $     &! ! !,    r   r   )rE   rF   r%   r   r:   r
   r   r   rj   r   r   <module>rk      s     				 



        d d d d d d d d d dr   