
    -i:                         d Z ddlZddlmZ ddlZddlmZ ddlmZ  G d de          Z	 G d d	e
          Zd
 Zedk    r e             dS dS )zCache Module for analex    N)md5)Database)	HashIndexc                   *     e Zd Z fdZd Zd Z xZS )
WithAIndexc                 \    d|d<   d|d<    t          t          |           j        |i | d S )N32s
key_formati    hash_lim)superr   __init__)selfargskwargs	__class__s      b/var/www/html/speakWrite/venv/lib/python3.11/site-packages/qalsadi/cachemanager/cache_codernity.pyr   zWithAIndex.__init__   sA      %|%z(j$($9&99999    c                     |                     d          }|rZt          |t                    st          |          }t          |                    d                                                    d fS d S )Nautf8)get
isinstancestrr   encodedigest)r   dataa_vals      r   make_key_valuezWithAIndex.make_key_value    sf     	<eS)) #E

u||F++,,3355t;;tr   c                     t          |t                    st          |          }t          |                    d                                                    S )Nr   )r   r   r   r   r   )r   keys     r   make_keyzWithAIndex.make_key(   sE    #s## 	c((C3::f%%&&--///r   )__name__
__module____qualname__r   r   r!   __classcell__)r   s   @r   r   r      sV        : : : : :  0 0 0 0 0 0 0r   r   c                   D    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 ZdS )Cachez/
    cache for word morphological analysis
    Fc                    t           j                            t           j                            d          d          }i i i i dd| _        |s|}n=t           j                            t           j                            |          d          }	 t          t          |                    | _        | j        	                                sO| j        
                                 t          | j        j        d          }| j                            |           dS | j                                         dS #  t          t          d|           d| _        Y dS xY w)z%
        Create Analex Cache
        ~z../.qalsadiCache)nounverbstopword)checkedWords	FreqWordsr   z Error: Can't Open data base N)ospathjoin
expandusercachedirnamer   r   dbexistscreater   	add_indexopenprint__file__)r   dp_pathDB_PATH_DEFAULTx_inds       r   r   zCache.__init__3   s)    ',,rw'9'9#'>'>@RSS"$bbAA
 

  	Q%GGgll27??7#;#;=OPPG	s7||,,DG7>>##    "47<55!!%(((((	(;WEEEDGGGGs   BD3 D3 3Ec                 |    d| _         t          | d          r"| j        r| j                                         dS dS dS )z2
        Delete instance and clear cache

        Nr5   )r3   hasattrr5   close)r   s    r   __del__zCache.__del__P   sN    
 
4 	 w  	  	    r   c                 d    	 t          | j                            d|                    S #  Y dS xY w)z$return if ``word`` is already cachedr   F)boolr5   r   )r   words     r   is_already_checkedzCache.is_already_checkedZ   s5    	C..///	55s   '* /c                     | j         rM| j                             d|d          }|                    dd          }|r|                    dg           S g S g S )z"return checked ``word`` form cacher   T)with_docdocFd)r5   r   )r   rE   xxxyyys       r   get_checkedzCache.get_checkedb   s`     7 	'++c4$+77C''%''C wwsB'''	Ir   c                 V    ||d}| j         r| j                             |           dS dS )zadd checked ``word`` form cache)r   rJ   N)r5   insert)r   rE   r   idatas       r   add_checkedzCache.add_checkedo   s?     &&7 	"GNN5!!!!!	" 	"r   c                      || j         d         v S )z#return if word exists in freq cacher.   r3   )r   rE   wordtypes      r   exists_cache_freqzCache.exists_cache_freqv   s    tz+...r   c                 P    | j         d         |                             |d          S )z%return  ``word`` frequency form cacher.   r   )r3   r   )r   originalwordrT   s      r   get_freqzCache.get_freqz   s$    z+&x044\1EEEr   c                 2    || j         d         |         |<   dS )z.add   ``original`` frequency ``freq`` to cacher.   NrS   )r   originalrT   freqs       r   add_freqzCache.add_freq~   s    6:
;)(333r   N)F)r"   r#   r$   __doc__r   rB   rF   rM   rQ   rU   rX   r\    r   r   r'   r'   .   s            :         " " "/ / /F F F; ; ; ; ;r   r'   c                  D   t          d           t          j                            t          j                            t
                    dd          } t          |           }d}d}|                    ||           |                    |          }t          |           dS )zmain functiontest z.qalsadiCachetahazerroukiN)	r:   r/   r0   r1   r4   r;   r'   rQ   rM   )r0   cacherrE   r   d2s        r   mainlyrf      s    	&MMM7<<112GGD4[[FDD
tT"""			D	!	!B	"IIIIIr   __main__)r]   syshashlibr   r/   codernitydb3.databaser   codernitydb3.hash_indexr   r   objectr'   rf   r"   r^   r   r   <module>rm      s      



       				 * * * * * * - - - - - -0 0 0 0 0 0 0 0,R; R; R; R; R;F R; R; R;j	 	 	 z
FHHHHH r   