
    >'h-                     T    d dl Z d dlmZmZmZ e G d de             Z G d d      Zy)    N)OptionalProtocolruntime_checkablec                   B    e Zd ZdZdedee   fdZdededdfdZd	dZ	y)
RenderCachez
    Interface for rendering cache.

    Prompts with the same template and same context are retrieved from the cache directly,
    instead of going through the rendering process.
    contextreturnc                      y N selfr   s     R/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/banks/cache.pygetzRenderCache.get           promptNc                      y r   r   r   r   r   s      r   setzRenderCache.set   r   r   c                      y r   r   r   s    r   clearzRenderCache.clear   r   r   r	   N)
__name__
__module____qualname____doc__dictr   strr   r   r   r   r   r   r   r      s/     746HSM6:4::: r   r   c                   J    e Zd ZdZd
dZdedee   fdZdededdfdZ	d
d	Z
y)DefaultCachez-
    In-memory, default rendering cache.
    r	   Nc                     i | _         y r   _cacher   s    r   __init__zDefaultCache.__init__   s	    (*r   r   c                 |    | j                   j                  t        j                  |t        j                              S r   )r%   r   pickledumpsHIGHEST_PROTOCOLr   s     r   r   zDefaultCache.get    s&    {{v||GV5L5LMNNr   r   c                 f    || j                   t        j                  |t        j                        <   y r   )r%   r(   r)   r*   r   s      r   r   zDefaultCache.set#   s!    FLFLL&*A*ABCr   c                     i | _         y r   r$   r   s    r   r   zDefaultCache.clear&   s	    r   r   )r   r   r   r   r&   r   r   r    r   r   r   r   r   r   r"   r"      sI    +O4 OHSM OM4 M M Mr   r"   )r(   typingr   r   r   r   r"   r   r   r   <module>r.      s5     8 8 !( ! ! r   