ó
    ýÞ jx  ã                  ó>  • S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	J
r
JrJr  \" S5      r\S   r SSKJr  SS	KJr   SSKJr  SSKJr  / SQrSS jrS
S.SS jjrS
S
S
S.           SS jjrg
! \ a    S
rS
r NBf = f! \ a    S
r " S S\
\   5      r NQf = f)z»Key/value cache for use inside LangGraph deployments.

Thin wrapper around ``langgraph_api.cache``.
Values must be JSON-serializable (dicts, lists, strings, numbers, booleans,
``None``).
é    )Úannotations)Ú	AwaitableÚCallable)Ú	timedelta)ÚAnyÚGenericÚLiteralÚTypeVarÚT)ÚmissÚfreshÚstaleÚexpired)Ú	cache_get)Ú	cache_setN)Ú	SWRResult)Úswrc                  óD   • \ rS rSr% SrS\S'   S\S'    S
   SS jjrSrg	)r   é%   z'Result wrapper returned by :func:`swr`.r   ÚvalueÚCacheStatusÚstatusc              ƒ  ó   #   • g7f)z&Update or revalidate the cached value.N© )Úselfr   s     ÚM/var/www/html/gaurav/venv/lib/python3.13/site-packages/langgraph_sdk/cache.pyÚmutateÚSWRResult.mutate+   s
   é € ð
 ùs   ‚r   N).)r   r   Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   Ú__static_attributes__r   ó    r   r   r   %   s1   ‡ Ù5à‹ØÓð ð	àð	ð ÷	ð 	r'   r   )r   r   r   r   c              ƒ  óX   #   • [         c  [        S5      e[        U 5      I Sh  v•N $  N7f)z£Get a value from the cache.

Returns the deserialized value, or ``None`` if the key is missing or expired.

Requires Agent Server runtime version 0.7.29 or later.
NúyCache is only available server-side within the LangGraph Agent Server (https://docs.langchain.com/langsmith/deployments).)Ú
_cache_getÚRuntimeError)Úkeys    r   r   r   ;   s2   é € ô ÑÜðBó
ð 	
ô ˜C“× Ð Ñ ùs   ‚!*£(¤*)Úttlc             ƒ  ó\   #   • [         c  [        S5      e[        XU5      I Sh  v•N   g N7f)a	  Set a value in the cache.

Args:
    key: The cache key.
    value: The value to cache (must be JSON-serializable).
    ttl: Optional time-to-live. Capped at 1 day; ``None`` or zero
        defaults to 1 day.

Requires Agent Server runtime version 0.7.29 or later.
Nr)   )Ú
_cache_setr+   )r,   r   r-   s      r   r   r   J   s2   é € ô ÑÜðBó
ð 	
ô �S Ó
%×%Ó%ùs   ‚",¤*¥,©Ú	fresh_forÚmax_ageÚmodelc             ƒ  óŒ   #   • [         c  [        S5      eUc  [        S5      nUc	  [        SS9n[        XX#US9I Sh  v•N $  N7f)a´  Load a cached value using stale-while-revalidate semantics.

This helper is server-side only and is intended for caching internal async
dependencies such as auth or metadata lookups.

Args:
    key: Cache key.
    loader: Async callable that fetches the value on miss/revalidation.
    fresh_for: How long a cached value is considered fresh (no revalidation).
        Defaults to ``timedelta(0)`` so every access triggers a background
        revalidate while still returning the cached value instantly. Values
        above :data:`MAX_CACHE_TTL` are clamped to the backend maximum.
    max_age: Total lifetime of a cached entry. After this, the next access
        blocks on the loader. Defaults to :data:`MAX_CACHE_TTL` (24 h by
        default). Values above :data:`MAX_CACHE_TTL` are clamped to the
        backend maximum.
    model: Optional Pydantic model class. When provided, values are
        serialized via ``model_dump(mode="json")`` before storage and
        deserialized via ``model.model_validate()`` on read.

Returns:
    An :class:`SWRResult` with ``.value``, ``.status``, and an async
    ``.mutate()`` method.

Semantics:
- cache miss: await ``loader()``, store the value, return it
- fresh hit (age < fresh_for): return the cached value
- stale hit (fresh_for <= age < max_age): return the cached value
  immediately and trigger a best-effort background refresh
- expired (age >= max_age): await ``loader()``, store the value, return it
Nr)   r   é   )Údaysr0   )Ú_api_swrr+   r   )r,   Úloaderr1   r2   r3   s        r   r   r   ]   s_   é € ôN ÑÜðBó
ð 	
ð ÑÜ˜a“Lˆ	Ø�Ü Ñ#ˆÜØ˜yÀñ÷ ð ñ ùs   ‚;A½A¾A)r,   Ústrr   z
Any | None)r,   r9   r   r   r-   útimedelta | Noner   ÚNone)r,   r9   r8   zCallable[[], Awaitable[T]]r1   r:   r2   r:   r3   ztype[T] | Noner   zSWRResult[T])r$   Ú
__future__r   Úcollections.abcr   r   Údatetimer   Útypingr   r   r	   r
   r   r   Úlanggraph_api.cacher   r*   r   r/   ÚImportErrorr   r   r7   Ú__all__r   r'   r   Ú<module>rC      sê   ðñõ #ç /Ý ß 1Ó 1áˆCƒL€àÐ9Ñ:€ð	õõðÝ-Ý3ò&€ô!ð FJ÷ &ð. #'Ø $Ø ñ2Ø	ð2à&ð2ð  ð	2ð
 ð2ð ð2ð ö2øðI ó Ø€JØ‚Jðûð ó Ø€Hô�G˜A‘Jö ðús"   ±A3 ¾B Á3
B Á?B ÂBÂB