o
    |!åg-  ã                   @   sB   d dl Z d dlmZmZmZ eG dd„ deƒƒZG dd„ dƒZdS )é    N)ÚOptionalÚProtocolÚruntime_checkablec                   @   sF   e Zd ZdZdedee fdd„Zdededdfdd	„Zdd
d„Z	dS )Ú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                 C   ó   d S ©N© ©Úselfr   r
   r
   úM/mnt/skqttb/ctump_chatbot/chatbot/lib/python3.10/site-packages/banks/cache.pyÚget   ó    zRenderCache.getÚpromptNc                 C   r   r	   r
   ©r   r   r   r
   r
   r   Úset   r   zRenderCache.setc                 C   r   r	   r
   ©r   r
   r
   r   Úclear   r   zRenderCache.clear©r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Údictr   Ústrr   r   r   r
   r
   r
   r   r      s
    r   c                   @   sP   e Zd ZdZddd„Zdedee fdd„Zded	eddfd
d„Z	ddd„Z
dS )ÚDefaultCachez-
    In-memory, default rendering cache.
    r   Nc                 C   ó
   i | _ d S r	   ©Ú_cacher   r
   r
   r   Ú__init__   ó   
zDefaultCache.__init__r   c                 C   s   | j  t |tj¡¡S r	   )r   r   ÚpickleÚdumpsÚHIGHEST_PROTOCOLr   r
   r
   r   r       s   zDefaultCache.getr   c                 C   s   || j t |tj¡< d S r	   )r   r"   r#   r$   r   r
   r
   r   r   #   s   zDefaultCache.setc                 C   r   r	   r   r   r
   r
   r   r   &   r!   zDefaultCache.clearr   )r   r   r   r   r    r   r   r   r   r   r   r
   r
   r
   r   r      s    
r   )r"   Útypingr   r   r   r   r   r
   r
   r
   r   Ú<module>   s
   