
    eg                        d Z ddlmZ ddlmZ ddlmZmZmZ erddl	m	Z	  G d d      Z
 G d d	e
      Z G d
 de
      Zy)zb
The cache object API for implementing caches. The default is a thread
safe in-memory dictionary.
    )annotations)Lock)IOTYPE_CHECKINGMutableMapping)datetimec                  >    e Zd ZddZ	 d	 	 	 	 	 	 	 ddZd	dZd
dZy)	BaseCachec                    t               NNotImplementedErrorselfkeys     {/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.pygetzBaseCache.get       !##    Nc                    t               r   r   r   r   valueexpiress       r   setzBaseCache.set   s     "##r   c                    t               r   r   r   s     r   deletezBaseCache.delete   r   r   c                     y r    )r   s    r   closezBaseCache.close   s    r   r   strreturnzbytes | Noner   r   r!   r   bytesr   zint | datetime | Noner"   Noner   r!   r"   r%   )r"   r%   )__name__
__module____qualname__r   r   r   r   r   r   r   r
   r
      s=    $ HL$$$$/D$	$
$r   r
   c                  @    e Zd ZdddZddZ	 d	 	 	 	 	 	 	 d	dZd
dZy)	DictCacheNc                8    t               | _        |xs i | _        y r   )r   lockdata)r   	init_dicts     r   __init__zDictCache.__init__#   s    F	O	r   c                :    | j                   j                  |d       S r   )r.   r   r   s     r   r   zDictCache.get'   s    yy}}S$''r   c                    | j                   5  | j                  j                  ||i       d d d        y # 1 sw Y   y xY wr   )r-   r.   updater   s       r   r   zDictCache.set*   s6     YY 	+IIc5\*	+ 	+ 	+s   4=c                    | j                   5  || j                  v r| j                  j                  |       d d d        y # 1 sw Y   y xY wr   )r-   r.   popr   s     r   r   zDictCache.delete0   s:    YY 	#dii		c"	# 	# 	#s   *A  A	r   )r/   z!MutableMapping[str, bytes] | Noner"   r%   r    r#   r&   )r'   r(   r)   r0   r   r   r   r   r   r   r+   r+   "   s=    $( HL++$+/D+	+#r   r+   c                       e Zd ZdZddZddZy)SeparateBodyBaseCacheag  
    In this variant, the body is not stored mixed in with the metadata, but is
    passed in (as a bytes-like object) in a separate call to ``set_body()``.

    That is, the expected interaction pattern is::

        cache.set(key, serialized_metadata)
        cache.set_body(key)

    Similarly, the body should be loaded separately via ``get_body()``.
    c                    t               r   r   )r   r   bodys      r   set_bodyzSeparateBodyBaseCache.set_bodyC   r   r   c                    t               )z6
        Return the body as file-like object.
        r   r   s     r   get_bodyzSeparateBodyBaseCache.get_bodyF   s     "##r   N)r   r!   r9   r$   r"   r%   )r   r!   r"   zIO[bytes] | None)r'   r(   r)   __doc__r:   r<   r   r   r   r7   r7   6   s    
$$r   r7   N)r=   
__future__r   	threadingr   typingr   r   r   r   r
   r+   r7   r   r   r   <module>rA      s@   
 #  4 4!  #	 #($I $r   