
    YeIi
                     h    d Z ddlmZ ddlmZ 	 ddlmZ dZn	#  dZY nxY wda	 G d d	e          Z
dS )
z<Provide a :class:`.CacheImpl` for the Beaker caching system.    )
exceptions)	CacheImpl)cacheTFNc                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )BeakerCacheImplzA :class:`.CacheImpl` provided for the Beaker caching system.

    This plugin is used by default, based on the default
    value of ``'beaker'`` for the ``cache_impl`` parameter of the
    :class:`.Template` or :class:`.TemplateLookup` classes.

    c                     t           st          j        d          t          4d|j        j        v r|j        j        d         ant          j                    at                      	                    |           d S )Nz8Can't initialize Beaker plugin; Beaker is not installed.manager)

has_beakerr   RuntimeException_beaker_cachetemplate
cache_argsbeaker_cacheCacheManagersuper__init__)selfr   	__class__s     Z/var/www/html/MCyber-Diagnostic/venv/lib/python3.11/site-packages/mako/ext/beaker_cache.pyr   zBeakerCacheImpl.__init__    sx     	-J    EN555 % 9) D , 9 ; ;    c                    |                     dd           }d|v r|                     d          |d<   n%| j        j        j        r| j        j        j        |d<   d|v r|                     d           |                    d          dk    rd|d<   d|v r3|                     d          }t          j        | j        j        |fi |}nt          j        | j        j        fi |}d	| j        j	        i}|r||d
<   ||fS )Ntimeoutdirdata_dirr	   type	memcachedzext:memcachedregion	starttime
expiretime)
popr   r   module_directorygetr   get_cache_regionid	get_cacher   )r   kwr   r   r   r   s         r   
_get_cachezBeakerCacheImpl._get_cache-   s   VVIt,,
B;;VVE]]BzNNZ 1 	B!Z0ABzN??FF966&>>[(((BvJr>>VVH%%F!24:=&OOBOOEE!+DJM@@R@@E!4:#78
 	2'1J|$j  r   c                 B     | j         di |\  }} |j        |fd|i|S )N
createfunc r'   r"   )r   keycreation_functionr&   r   s        r   get_or_createzBeakerCacheImpl.get_or_createD   s=    #DO))b))	ruyAA):AbAAAr   c                 D     | j         di |\  }} |j        ||fi | d S Nr*   )r'   put)r   r,   valuer&   r   s        r   r1   zBeakerCacheImpl.putH   s?    #DO))b))	r	#u#######r   c                 >     | j         di |\  }} |j        |fi |S r0   r+   r   r,   r&   r   s       r   r"   zBeakerCacheImpl.getL   s7    #DO))b))	ruy#####r   c                 B     | j         di |\  }} |j        |fi | d S r0   )r'   remove_valuer4   s       r   
invalidatezBeakerCacheImpl.invalidateP   s>    #DO))b))	r3%%"%%%%%r   )__name__
__module____qualname____doc__r   r'   r.   r1   r"   r7   __classcell__)r   s   @r   r   r      s                  ! ! !.B B B$ $ $$ $ $& & & & & & &r   r   )r;   makor   
mako.cacher   beakerr   r   r
   r   r   r*   r   r   <module>r@      s    C B                  ,,,,,, JJJJJ <& <& <& <& <&i <& <& <& <& <&s    