
    ugy                         d dl mZ d dlmZmZmZmZ d dlmZm	Z	  ededef         Z
 edee         Z G d d	e      Z G d
 de      Zy)    )abstractmethod)	AwaitableCallableTypeVarAny)	ComponentSystemT.)boundAc                   F     e Zd ZdZdeddf fdZededefd       Z xZ	S )RateLimitEnforcerz
    Rate limit enforcer.

    Implemented as a wrapper around server functions to block requests if rate limits are exceeded.
    systemreturnNc                 $    t         |   |       y Nsuper__init__selfr   	__class__s     Q/var/www/openai/venv/lib/python3.12/site-packages/chromadb/rate_limit/__init__.pyr   zRateLimitEnforcer.__init__            funcc                      y r    r   r   s     r   
rate_limitzRateLimitEnforcer.rate_limit       r   )
__name__
__module____qualname____doc__r	   r   r   r
   r    __classcell__r   s   @r   r   r   	   =    !v !$ ! q Q  r   r   c                   F     e Zd ZdZdeddf fdZededefd       Z xZ	S )AsyncRateLimitEnforcerz
    Rate limit enforcer.

    Implemented as a wrapper around async functions to block requests if rate limits are exceeded.
    r   r   Nc                 $    t         |   |       y r   r   r   s     r   r   zAsyncRateLimitEnforcer.__init__   r   r   r   c                      y r   r   r   s     r   r    z!AsyncRateLimitEnforcer.rate_limit"   r!   r   )
r"   r#   r$   r%   r	   r   r   r   r    r&   r'   s   @r   r*   r*      r(   r   r*   N)abcr   typingr   r   r   r   chromadb.configr   r	   r
   r   r   r*   r   r   r   <module>r0      sN     4 4 -CxS)*Cy~&	 Y r   