
    3iy                         S SK Jr  S SKJrJrJrJr  S SKJrJ	r	  \" S\S\4   S9r
\" S\\   S9r " S S	\5      r " S
 S\5      rg)    )abstractmethod)	AwaitableCallableTypeVarAny)	ComponentSystemT.)boundAc                   T   ^  \ rS rSrSrS\SS4U 4S jjr\S\S\4S j5       r	S	r
U =r$ )
RateLimitEnforcer	   zw
Rate limit enforcer.

Implemented as a wrapper around server functions to block requests if rate limits are exceeded.
systemreturnNc                 $   > [         TU ]  U5        g Nsuper__init__selfr   	__class__s     V/home/james-whalen/.local/lib/python3.13/site-packages/chromadb/rate_limit/__init__.pyr   RateLimitEnforcer.__init__            funcc                     g r    r   r   s     r   
rate_limitRateLimitEnforcer.rate_limit       r   r    )__name__
__module____qualname____firstlineno____doc__r	   r   r   r
   r"   __static_attributes____classcell__r   s   @r   r   r   	   =    !v !$ ! q Q  r   r   c                   T   ^  \ rS rSrSrS\SS4U 4S jjr\S\S\4S j5       r	S	r
U =r$ )
AsyncRateLimitEnforcer   zv
Rate limit enforcer.

Implemented as a wrapper around async functions to block requests if rate limits are exceeded.
r   r   Nc                 $   > [         TU ]  U5        g r   r   r   s     r   r   AsyncRateLimitEnforcer.__init__   r   r   r   c                     g r   r    r!   s     r   r"   !AsyncRateLimitEnforcer.rate_limit"   r$   r   r    )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>r8      sN     4 4 -CxS)*Cy~&	 Y r   