File: //home/arjun/projects/env/lib/python3.10/site-packages/mako/__pycache__/cache.cpython-310.pyc
o
%we � @ sH d dl mZ e�d�ZejZeddd� G dd� d�ZG dd � d �Zd
S )� )�utilz
mako.cache�beakerzmako.ext.beaker_cache�BeakerCacheImplc @ s� e Zd ZdZdZ dZ dZ dd� Zdd� Zdd� Z d d
� Z
dd� ZeZ d
d� Z
dd� Zdd� Zdd� Zdd� Zdd� ZdS )�Cachea� Represents a data content cache made available to the module
space of a specific :class:`.Template` object.
.. versionadded:: 0.6
:class:`.Cache` by itself is mostly a
container for a :class:`.CacheImpl` object, which implements
a fixed API to provide caching services; specific subclasses exist to
implement different
caching strategies. Mako includes a backend that works with
the Beaker caching system. Beaker itself then supports
a number of backends (i.e. file, memory, memcached, etc.)
The construction of a :class:`.Cache` is part of the mechanics
of a :class:`.Template`, and programmatic access to this
cache is typically via the :attr:`.Template.cache` attribute.
Nc G sF t |t�r |r d S || _|jj| _|jj| _i | _| � | jj
�| _d S �N)�
isinstance�str�template�module�__name__�id�_modified_time� starttime�_def_regions�
_load_impl�
cache_impl�impl)�selfr �args� r �C/home/arjun/projects/env/lib/python3.10/site-packages/mako/cache.py�__init__A s
zCache.__init__c C s t �|�| �S r )�_cache_plugins�load�r �namer r r r L s zCache._load_implc K s | j ||dfi |��S )�cRetrieve a value from the cache, using the given creation function
to generate a new value.N)�_ctx_get_or_create�r �key�creation_function�kwr r r �
get_or_createO s zCache.get_or_createc K s, | j js|� S | jj||fi | �||���S )r )r �
cache_enabledr r"