o
    žº¥gÕ  ã                   @   sŠ   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZ d dlmZmZ G dd„ deeƒZG dd	„ d	eƒZd
S )é    )Úabstractmethod)ÚEnum)ÚDictÚAnyÚOptional)Ú
EmbeddingsÚ	MetadatasÚ	DocumentsÚURIsÚIDsÚCollectionMetadataÚWhereÚWhereDocument)Ú	ComponentÚSystemc                   @   s4   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )ÚActionÚcreate_databaseÚcreate_collectionÚlist_collectionsÚupdate_collectionÚaddÚgetÚdeleteÚupdateÚupsertÚqueryN)Ú__name__Ú
__module__Ú__qualname__ÚCREATE_DATABASEÚCREATE_COLLECTIONÚLIST_COLLECTIONSÚUPDATE_COLLECTIONÚADDÚGETÚDELETEÚUPDATEÚUPSERTÚQUERY© r)   r)   úN/var/www/visachat/venv/lib/python3.10/site-packages/chromadb/quota/__init__.pyr      s    r   c                $       sð   e Zd ZdZdeddf‡ fdd„Zedeee	f ddfdd	„ƒZ
e														dd
ededee dee dee dee dee dee dee dee dee dee dee dee dee dee ddf"dd„ƒZ‡  ZS )ÚQuotaEnforcerz*
    Exposes hooks to enforce quotas.
    ÚsystemÚreturnNc                    s   t ƒ  |¡ d S )N)ÚsuperÚ__init__)Úselfr,   ©Ú	__class__r)   r*   r/   $   s   zQuotaEnforcer.__init__Úcontextc                 C   ó   dS )z7
        Sets the context for a given request.
        Nr)   )r0   r3   r)   r)   r*   Úset_context'   s   zQuotaEnforcer.set_contextÚactionÚtenantÚ	metadatasÚ	documentsÚ
embeddingsÚurisÚidsÚnameÚnew_nameÚmetadataÚnew_metadataÚlimitÚwhereÚwhere_documentÚ	n_resultsÚquery_embeddingsc                 C   r4   )z#
        Enforces a quota.
        Nr)   )r0   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   r)   r)   r*   Úenforce.   s   zQuotaEnforcer.enforce)NNNNNNNNNNNNNN)r   r   r   Ú__doc__r   r/   r   r   Ústrr   r5   r   r   r   r	   r   r
   r   r   Úintr   r   rF   Ú__classcell__r)   r)   r1   r*   r+      sn    ïþýüûúùø	÷
öõôóòñðïîr+   N)Úabcr   Úenumr   Útypingr   r   r   Úchromadb.api.typesr   r   r	   r
   r   r   r   r   Úchromadb.configr   r   rH   r   r+   r)   r)   r)   r*   Ú<module>   s    (
