
    _jy                         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dS )    )abstractmethod)	AwaitableCallableTypeVarAny)	ComponentSystemT.)boundAc                   L     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                 J    t                                          |           d S Nsuper__init__selfr   	__class__s     Y/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/chromadb/rate_limit/__init__.pyr   zRateLimitEnforcer.__init__   !             funcc                     d S 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                   L     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                 J    t                                          |           d S r   r   r   s     r   r   zAsyncRateLimitEnforcer.__init__   r   r   r   c                     d S 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      s          4 4 4 4 4 4 4 4 4 4 4 4 - - - - - - - -GCxS)***GCy~&&&    	       Y     r   