
    i-                     T    S SK r S SKJrJrJr  \ " S S\5      5       r " S S5      rg)    N)OptionalProtocolruntime_checkablec                   P    \ rS rSrSrS\S\\   4S jrS\S\SS4S jr	SS	 jr
S
rg)RenderCache   z
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                     g N selfr	   s     E/home/james-whalen/.local/lib/python3.13/site-packages/banks/cache.pygetRenderCache.get   s    3    promptNc                     g r   r   r   r	   r   s      r   setRenderCache.set   s    sr   c                     g r   r   r   s    r   clearRenderCache.clear   s    Sr   r   r
   N)__name__
__module____qualname____firstlineno____doc__dictr   strr   r   r   __static_attributes__r   r   r   r   r      s/     746HSM6:4::: r   r   c                   Z    \ rS rSrSrSS jrS\S\\   4S jr	S\S\SS4S	 jr
SS
 jrSrg)DefaultCache   z%
In-memory, default rendering cache.
r
   Nc                     0 U l         g r   _cacher   s    r   __init__DefaultCache.__init__   s	    (*r   r	   c                 ~    U R                   R                  [        R                  " U[        R                  5      5      $ r   )r+   r   pickledumpsHIGHEST_PROTOCOLr   s     r   r   DefaultCache.get    s&    {{v||GV5L5LMNNr   r   c                 f    X R                   [        R                  " U[        R                  5      '   g r   )r+   r/   r0   r1   r   s      r   r   DefaultCache.set#   s    FLFLL&*A*ABCr   c                     0 U l         g r   r*   r   s    r   r   DefaultCache.clear&   s	    r   r*   r   )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>r8      s5     8 8 !( ! ! r   