�
���gF� � � � d dl mZmZmZmZ d dlmZ d dlmZ d dl m
Z
d dlmZm
Z
mZmZ d dlmZ d dlmZmZ d dlmZmZ d d lmZ d d
lmZ d dlmZmZmZm Z m!Z! d dl"m#Z#m$Z$m%Z% d d
l&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZMmNZNmOZOmPZP d dl/mQZR d dlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZ d dl[m\Z\ d dl]m^Z^m_Z_ d dl`maZa d dlbZbd dlcZcd dldZd eZdeYdeXf �� � Ze ecjf eg� � Zhdeiddfd�Zjd eedeefd!�Zk G d"� d#e� � Zl d+d$eRjm d%e:d&eTe; d'eTe< d(eTe= d)eTe> deVeRjn ddf fd*�ZodS ),� )�retry�stop_after_attempt�retry_if_exception�
wait_fixed)� ServerAPI)�CollectionConfigurationInternal)�UserIdentity)�DEFAULT_DATABASE�DEFAULT_TENANT�Settings�System)�SysDB)�
QuotaEnforcer�Action)�RateLimitEnforcer�AsyncRateLimitEnforcer)�SegmentManager)�Executor)�Scan�Filter�Limit�KNN�
Projection)� CountPlan�GetPlan�KNNPlan)�add_attributes_to_current_span�OpenTelemetryClient�OpenTelemetryGranularity�trace_method)�ProductTelemetryClient)�Producer)�
Collection��__version__)�InvalidDimensionException�InvalidCollectionException�VersionMismatchError)�CollectionMetadata�IDs�
Embeddings� Metadatas� Documents�URIs�Where�
WhereDocument�Include�IncludeEnum� GetResult�QueryResult�validate_metadata�validate_update_metadata�validate_where�validate_where_document�validate_batch)�CollectionAddEvent�CollectionDeleteEvent�CollectionGetEvent�CollectionUpdateEvent�CollectionQueryEvent�ClientCreateCollectionEventN)�Optional�Sequence� Generator�List�Any�Callable�TypeVar)�override)�UUID�uuid4)�wraps�T.)�bound�
index_name�returnc �0 � d| � �}t | � � dk st | � � dk rt |� � �t j d| � � st |� � �d| v rt |� � �t j d| � � rt |� � �d S )Na Expected collection name that (1) contains 3-63 characters, (2) starts and ends with an alphanumeric character, (3) otherwise contains only alphanumeric characters, underscores or hyphens (-), (4) contains no two consecutive periods (..) and (5) is not a valid IPv4 address, got � �? z'^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]$z..z0^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$)�len�
ValueError�re�match)rM �msgs �d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/chromadb/api/segment.py�check_index_namerX O s� � � � �
� � � �:������c�*�o�o��2�2���o�o��
�8�=�z�J�J� ���o�o���z�����o�o�� �x�E�z�R�R� ���o�o��� � �funcc �h � � t � � � dt dt dt f� fd�� � }|S )N�args�kwargsrN c �T �� | d } |j � �� � | i |��S )Nr )�_rate_limit_enforcer�
rate_limit)r\ r] �selfrZ s �rW �wrapperzrate_limit.<locals>.wrapperd s2 �� ��A�w��9�t�(�3�3�D�9�9�4�J�6�J�J�JrY )rJ rD )rZ rb s ` rW r` r` c sV �� �
�4�[�[�K�s� K�c� K�c� K� K� K� K� K� �[�K� �NrY c � � � e Zd ZU dZeed<