
    Zit                        d dl Z d dlZd dlmZmZmZmZmZmZm	Z	 d dlm
Z
 d dlmZ d dlZd dlZd dlmZ d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl&m:Z:m;Z;m<Z<m=Z= d dl>m?Z? d dl>m@Z@ d dlAmBZBmCZCmDZDmEZE d dlFmGZGmHZHmIZI d dlJmKZK  ejL        eM          ZN G d dee#          ZOdS )    N)AnyDictMappingOptionalcastTupleList)Sequence)UUID)override)AttachedFunction)CreateCollectionConfigurationUpdateCollectionConfiguration'update_collection_configuration_to_json'create_collection_configuration_to_json)__version__)BaseHTTPClient)DatabaseTenant
Collection)	ServerAPI)Search)	Documents
EmbeddingsIDsIncludeIndexingStatusSchema	Metadatas	ReadLevelURIsWhereWhereDocument	GetResultQueryResultSearchResultCollectionMetadatavalidate_batchconvert_np_embeddings_to_listIncludeMetadataDocuments!IncludeMetadataDocumentsDistances)"IncludeMetadataDocumentsEmbeddings%optional_embeddings_to_base64_stringsserialize_metadatadeserialize_metadata)UserIdentity)ClientAuthProvider)DEFAULT_DATABASEDEFAULT_TENANTSettingsSystem)OpenTelemetryClientOpenTelemetryGranularitytrace_method)ProductTelemetryClientc                       e Zd Zdef fdZedeeef         fd            Zedefd            Z	dedede
eef         defd	Z ed
ej                  edefd                        Z edej                  eefdededdfd                        Z edej                  eefdededefd                        Z edej                  eefdededdfd                        Z edej                  eddefdee         dee         dedee         fd                        Z edej                  ededdfd                        Z edej                  ededefd                        Z edej                  edefd                        Z edej                  eddeefdee         dee         ded edee          f
d!                        Z! ed"ej                  eeefded edefd#                        Z" ed$ej                  edddd%eefded&ee#         d'ee$         d(ee%         d)e&ded ede fd*                        Z' ed+ej                  eeefdeded ede fd,                        Z( ed-ej                  edddeefded&ee#         d'ee$         d(ee%         ded ede fd.                        Z) ed/ej                  edddeefd0e*d1ee         d2ee%         d3ee+         ded eddfd4                        Z, ed5ej                  eeefd6e*d1eded ede f
d7                        Z- ed8ej                  eeefd6e*ded ede.fd9                        Z/ ed:ej                  eeee0j1        fd6e*d;e2e3         ded ed<e0de4fd=                        Z5 ed>ej                  eeefdeded eddfd?                        Z6 ed@ej                  eeefd6e*ded edefdA                        Z7 edBej                  edCeefd6e*dDeded ede8f
dE                        Z9 edFej                  eddddde:eefd6e*dGee;         dHee<         dee         dee         dIee=         dJe>ded ede8fdK                        Z? edLej                  edddeefd6e*dGee;         dHee<         dIee=         ded eddfdM                        Z@ edNejA                  dOeBe;eeC         eeD         eeE         eeF         f         dPeddfdQ            ZG edRejA                  edddeefdGe;d6e*dSeCdTeeD         dUeeE         dVeeF         ded ede&fdW                        ZH edXejA                  eddddeefd6e*dGe;dSeeC         dTeeD         dUeeE         dVeeF         ded ede&fdY                        ZI edZejA                  edddeefd6e*dGe;dSeCdTeeD         dUeeE         dVeeF         ded ede&fd[                        ZJ ed\ejA                  eddCddeKeefd6e*d]eCdGee;         d^edHee<         dIee=         dJe>ded edeLfd_                        ZM ed`ejA                  ede&fda                        ZN edbej                  edefdc                        ZOedePfdd            ZQ edeej                  defdf            ZR edgej                  de&fdh            ZS ediej                  edefdj                        ZT edkejA                  edeefdlededme*dnedoee
eef                  ded edeBdpe&f         fdq                        ZU edrejA                  eeefdedme*ded eddpf
ds                        ZV edtejA                  ed%eefdedme*due&ded ede&fdv                        ZW xZXS )wFastAPIsystemc                 b   t                                          |           |j                            d           |j                            d           |                     t                    | _        |                     t                    | _        |j        | _        t          
                    t          |j        j                  |j        j        |j        j        |j        j                  | _        | j        j        ,t%          j        d | j        | j        j                  | _        n t%          j        d | j                  | _        |j        j        pi | _        d| j        d<   dt0          z   d	z   | j        d
<   | j        $| j        j                            | j                   |j        j        rs|                     t8                    | _        | j                                        }|                                D ](\  }}|                                 | j        j        |<   'd S d S )Nchroma_server_hostchroma_server_http_port)r>   r?   chroma_server_ssl_enableddefault_api_path)timeoutlimitsverify)rB   rC   zapplication/jsonzContent-TypezChroma Python Client vz( (https://github.com/chroma-core/chroma)z
User-Agent)!super__init__settingsrequirer6   _opentelemetry_clientr9   _product_telemetry_client	_settingsr;   resolve_urlstrr>   r?   r@   chroma_server_api_default_path_api_urlchroma_server_ssl_verifyhttpxClienthttp_limits_sessionchroma_server_headers_headerr   headersupdatechroma_client_auth_providerr1   _auth_providerauthenticateitemsget_secret_value)selfr<   _headersheadervalue	__class__s        Q/root/projects/butler/venv/lib64/python3.11/site-packages/chromadb/api/fastapi.pyrF   zFastAPI.__init__D   s        4555 9:::%)\\2E%F%F")-6L)M)M&++"6?#EFF$*O$K&,o&O#_K	 , 
 
 >2>!L'~>  DMM "Ld>NOOODM<B'9^$$89 	\" <#M!((666?6 	I"&,,/A"B"BD*7799H!)!1!1 I I050F0F0H0H%f--		I 	II I    returnc                 4    t          | j        j                  S N)dictrT   rW   r^   s    rc   get_request_headerszFastAPI.get_request_headersn   s    DM)***rd   c                     | j         S rg   )rO   ri   s    rc   get_api_urlzFastAPI.get_api_urlr   s
    }rd   methodpathkwargsc                 |   d|v r8t          j        |                    d          t           j                  }||d<   t          j                            |dd d           }| j        |z   } | j        j	        ||fi t          t          |          }t          j        |           t          j        |j                  S )Njson)optioncontent/)safeencodingerrors)orjsondumpspopOPT_SERIALIZE_NUMPYurllibparsequoterO   rT   requestr   r   r   _raise_chroma_errorloadstext)r^   rm   rn   ro   dataescaped_pathurlresponses           rc   _make_requestzFastAPI._make_requestv   s     V<

6 2 26;UVVVD $F9 |))$S4PT)UUml*(4=(JJS&8I8IJJ*8444|HM***rd   zFastAPI.heartbeatc                 X    |                      dd          }t          |d                   S )zNReturns the current server time in nanoseconds to check if the server is alivegetz
/heartbeatznanosecond heartbeat)r   intr^   	resp_jsons     rc   	heartbeatzFastAPI.heartbeat   s-     &&ul;;	934555rd   zFastAPI.create_databasenametenantNc                 B    |                      dd| dd|i           dS )zCreates a databasepost	/tenants/
/databasesr   rq   Nr   r^   r   r   s      rc   create_databasezFastAPI.create_database   sC     	****$ 	 	
 	
 	
 	
 	
rd   zFastAPI.get_databasec                     |                      dd| d|           }t          |d         |d         |d                   S )zReturns a databaser   r   /databases/idr   r   r   r   r   )r   r   )r^   r   r   r   s       rc   get_databasezFastAPI.get_database   s]     &&111411
 
	 Yv%6y?R
 
 
 	
rd   zFastAPI.delete_databasec                 >    |                      dd| d|            dS )zDeletes a databasedeleter   r   Nr   r   s      rc   delete_databasezFastAPI.delete_database   s<     	111411	
 	
 	
 	
 	
rd   zFastAPI.list_databaseslimitoffsetc           	          |                      dd| dt          j        ||d                    }d |D             }|S )zReturns a list of all databasesr   r   r   r   r   paramsc                 V    g | ]&}t          |d          |d         |d                   'S )r   r   r   r   )r   ).0dbs     rc   
<listcomp>z*FastAPI.list_databases.<locals>.<listcomp>   sC     
 
 
 4r&z"X,GGG
 
 
rd   r   r   _clean_params)r^   r   r   r   json_databases	databasess         rc   list_databaseszFastAPI.list_databases   su     ++****!/"$   , 	
 	

 
$
 
 
	 rd   zFastAPI.create_tenantc                 :    |                      ddd|i           d S )Nr   z/tenantsr   r   r   )r^   r   s     rc   create_tenantzFastAPI.create_tenant   s)     	6:VTNCCCCCrd   zFastAPI.get_tenantc                 `    |                      dd|z             }t          |d                   S )Nr   r   r   )r   )r   r   )r^   r   r   s      rc   
get_tenantzFastAPI.get_tenant   s4     &&ukD.@AA	9V,----rd   zFastAPI.get_user_identityc                 B    t          di |                     dd          S )Nr   z/auth/identity )r0   r   ri   s    rc   get_user_identityzFastAPI.get_user_identity   s)     JJd008HIIJJJrd   zFastAPI.list_collectionsdatabasec           	          |                      dd| d| dt          j        ||d                    }d |D             }|S )z!Returns a list of all collectionsr   r   r   /collectionsr   r   c                 6    g | ]}t          j        |          S r   )CollectionModel	from_json)r   json_collections     rc   r   z,FastAPI.list_collections.<locals>.<listcomp>   s3     
 
 
 %o66
 
 
rd   r   )r^   r   r   r   r   json_collectionscollection_modelss          rc   list_collectionszFastAPI.list_collections   s      --AAA8AAA!/"$   . 	
 	

 
#3
 
 

 ! rd   zFastAPI.count_collectionsc                 f    |                      dd| d| d          }t          t          |          S )zReturns a count of collectionsr   r   r   z/collections_countr   r   r   )r^   r   r   r   s       rc   count_collectionszFastAPI.count_collections   sD     &&GGG8GGG
 
	 C###rd   zFastAPI.create_collectionFschemaconfigurationmetadataget_or_createc           
          |rt          ||          nd}|r|                                nd}	|                     dd| d| d||||	|d          }
t          j        |
          }|S )zCreates a collectionNr   r   r   r   )r   r   r   r   r   r   )r   serialize_to_jsonr   r   r   )r^   r   r   r   r   r   r   r   config_jsonserialized_schemar   models               rc   create_collectionzFastAPI.create_collection
  s     3M8LLL 	
 ;AJF44666d&&AAA8AAA$!,+!.  ' 

 

	  ))44rd   zFastAPI.get_collectionc           	      l    |                      dd| d| d|           }t          j        |          }|S )zReturns a collectionr   r   r   /collections/r   r   r   )r^   r   r   r   r   r   s         rc   get_collectionzFastAPI.get_collection,  sN     &&HHH8HH$HH
 
	
  ))44rd   z FastAPI.get_or_create_collectionc           	      :    |                      ||||d||          S )NT)r   r   r   r   r   r   r   )r   )r^   r   r   r   r   r   r   s          rc   get_or_create_collectionz FastAPI.get_or_create_collection=  s6     %%' & 
 
 	
rd   zFastAPI._modifyr   new_namenew_metadatanew_configurationc           	      r    |                      dd| d| d| |||rt          |          ndd           dS )zUpdates a collectionputr   r   r   N)r   r   r   r   )r   r   )r^   r   r   r   r   r   r   s          rc   _modifyzFastAPI._modifyT  s}     	FFF8FF"FF ,$ %&%L%& & &   	 	
 	
 	
 	
 	
rd   zFastAPI._forkcollection_idc           
      v    |                      dd| d| d| dd|i          }t          j        |          }|S )zForks a collectionr   r   r   r   z/forkr   r   r   )r^   r   r   r   r   r   r   s          rc   _forkzFastAPI._forkn  s^     &&VVV8VV-VVVh' ' 
 
	
  ))44rd   zFastAPI._get_indexing_statusc           
          |                      dd| d| d| d          }t          |d         |d         |d         |d	         
          S )Nr   r   r   r   z/indexing_statusnum_indexed_opsnum_unindexed_ops	total_opsop_indexing_progress)r   r   r   r   )r   r   r^   r   r   r   r   s        rc   _get_indexing_statuszFastAPI._get_indexing_status  sv     &&aaa8aa-aaa
 
	 %&78'(;<,!*+A!B	
 
 
 	
rd   zFastAPI._searchsearches
read_levelc           
          d |D             |d}|                      dd| d| d| d|          }|                    d	d
          }|d |D             |d	<   t          |          S )z&Performs hybrid search on a collectionc                 6    g | ]}|                                 S r   )to_dict)r   ss     rc   r   z#FastAPI._search.<locals>.<listcomp>  s     777777rd   )r   r   r   r   r   r   z/searchr   	metadatasNc                 .    g | ]}|d |D             nd S )Nc                 4    g | ]}|t          |          nd S rg   r/   r   r   s     rc   r   z.FastAPI._search.<locals>.<listcomp>.<listcomp>  <         7?6J(222PT  rd   r   r   r   s     rc   r   z#FastAPI._search.<locals>.<listcomp>  sS     & & &  (	 $-   
 & & &rd   )r   r   r&   )	r^   r   r   r   r   r   payloadr   metadata_batchess	            rc   _searchzFastAPI._search  s     87h777$
 

 &&XXX8XX-XXX ' 
 
	 %==d;;'& & "2& & &Ik" I&&&rd   zFastAPI.delete_collectionc           	      D    |                      dd| d| d|            dS )zDeletes a collectionr   r   r   r   Nr   )r^   r   r   r   s       rc   delete_collectionzFastAPI.delete_collection  sD     	HHH8HH$HH	
 	
 	
 	
 	
rd   zFastAPI._countc           
      l    |                      dd| d| d| d          }t          t          |          S )z0Returns the number of embeddings in the databaser   r   r   r   z/countr   r   s        rc   _countzFastAPI._count  sL     &&WWW8WW-WWW
 
	 C###rd   zFastAPI._peek
   nc           
      f    t          t          |                     ||||t                              S )N)r   r   r   include)r   r$   _getr,   )r^   r   r   r   r   s        rc   _peekzFastAPI._peek  s>     II!:   	
 	
 		
rd   zFastAPI._getidswherewhere_documentr   c
                 d   d |D             }
|                      dd| d|	 d| d||||||
d          }|                    d	d           }|d
 |D             }t          |d         |                    dd           ||                    dd           d |                    dd           |          S )Nc                     g | ]
}|d k    |S r   r   r   is     rc   r   z FastAPI._get.<locals>.<listcomp>      >>>!!v++A+++rd   r   r   r   r   z/get)r   r   r   r   r   r   r   r   c                 4    g | ]}|t          |          nd S rg   r   r   s     rc   r   z FastAPI._get.<locals>.<listcomp>  s;        3;2F$X...D  rd   r   
embeddings	documentsuris)r   r  r   r  r   r	  included)r   r   r$   )r^   r   r   r   r   r   r   r   r   r   filtered_includer   r   s                rc   r   zFastAPI._get  s    ?>w>>>&&UUU8UU-UUU "0+  ' 
 
	 MM+t44	   )  I
 %  }}\488mmK66vt,,
 
 
 	
rd   zFastAPI._deletec           
      R    |                      dd| d| d| d|||d           dS )	z$Deletes embeddings from the databaser   r   r   r   z/delete)r   r   r   r   Nr   )r^   r   r   r   r   r   r   s          rc   _deletezFastAPI._delete  s\     	XXX8XX-XXX"0  	 	
 	
 	
 trd   zFastAPI._submit_batchbatchr   c                     d}|d         d |d         D             }|d         |                                  rt          |d                   n|d         ||d         |d         d}|                     d	||
           dS )z?
        Submits a batch of embeddings to the database
        N   c                 4    g | ]}|t          |          nd S rg   )r.   r   s     rc   r   z)FastAPI._submit_batch.<locals>.<listcomp>D  s;     $ $ $ 190D"8,,,$$ $ $rd   r            )r   r  r   r  r	  r   r   )supports_base64_encodingr-   r   )r^   r  r   serialized_metadatasr   s        rc   _submit_batchzFastAPI._submit_batch2  s       $8$ $ %a$ $ $  8,,..?aIIIq-q!H
 
 	63T22222rd   zFastAPI._addr  r   r  r	  c	                     |||||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zi
        Adds a batch of embeddings to the database
        - pass in column oriented data lists
        max_batch_sizer   r   r   z/addTr(   get_max_batch_sizer  rM   )
r^   r   r   r  r   r  r	  r   r   r  s
             rc   _addzFastAPI._addU  s    $ 
 	u/1H1H1J1JKLLLZZZ8ZZ#mBTBTZZZ	
 	
 	
 trd   zFastAPI._updatec	                     |||nd|||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zl
        Updates a batch of embeddings in the database
        - pass in column oriented data lists
        Nr  r   r   r   z/updateTr  
r^   r   r   r  r   r  r	  r   r   r  s
             rc   _updatezFastAPI._updatet  s    $ $0JJd
 	u/1H1H1J1JKLLL]]]8]]#mBTBT]]]	
 	
 	
 trd   zFastAPI._upsertc	                     |||||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zl
        Upserts a batch of embeddings in the database
        - pass in column oriented data lists
        r  r   r   r   z/upsertTr  r  s
             rc   _upsertzFastAPI._upsert  s    $ 
 	u/1H1H1J1JKLLL]]]8]]#mBTBT]]]	
 	
 	
 trd   zFastAPI._queryquery_embeddings	n_resultsc
                    d |D             }
	 |                      dd| d|	 d| d||t          |          nd ||||
d          }|                    d	d           }|d
 |D             }t          |d         |                    dd           |                    dd           ||                    dd           |                    dd           d |          S )Nc                     g | ]
}|d k    |S r  r   r  s     rc   r   z"FastAPI._query.<locals>.<listcomp>  r  rd   r   r   r   r   z/query)r   r"  r#  r   r   r   r   r   c                 .    g | ]}|d |D             nd S )Nc                 4    g | ]}|t          |          nd S rg   r   r   s     rc   r   z-FastAPI._query.<locals>.<listcomp>.<listcomp>  r   rd   r   r   s     rc   r   z"FastAPI._query.<locals>.<listcomp>  sS            (	 $-   
      rd   r   	distancesr  r  r	  )r   r(  r  r   r  r	  r   r
  )r   r)   r   r%   )r^   r   r"  r   r#  r   r   r   r   r   r  r   r   s                rc   _queryzFastAPI._query  s5    ?>w>>>>&&WWW8WW-WWW#/ %BBR$S$S$S&"0+	 	 ' 
 
	  %==d;;'    "2      % mmK66 }}\488&mmK66vt,,	
 	
 	
 		
rd   zFastAPI.resetc                 X    |                      dd          }t          t          |          S )zResets the databaser   z/resetr   r   boolr   s     rc   resetzFastAPI.reset  s)     &&vx88	D)$$$rd   zFastAPI.get_versionc                 X    |                      dd          }t          t          |          S )z!Returns the version of the serverr   z/version)r   r   rM   r   s     rc   get_versionzFastAPI.get_version  s)     &&uj99	C###rd   c                     | j         S )z"Returns the settings of the client)rK   ri   s    rc   get_settingszFastAPI.get_settings  s     ~rd   zFastAPI.get_pre_flight_checksc                 X    | j         |                     dd          }|| _         | j         S )Nr   z/pre-flight-checks)pre_flight_checksr   r   s     rc   get_pre_flight_checkszFastAPI.get_pre_flight_checks  s2    !)**52FGGI%.D"%%rd   z FastAPI.supports_base64_encodingc                     |                                  }t          t          |                    dd                    }|S )Nr  F)r4  r   r,  r   )r^   r3  b64_encoding_enableds      rc   r  z FastAPI.supports_base64_encoding  sE     !6688##''(BEJJ 
  
 $#rd   zFastAPI.get_max_batch_sizec                     |                                  }t          t          |                    dd                    }|S )Nr  )r4  r   r   r   )r^   r3  r  s      rc   r  zFastAPI.get_max_batch_size  s=     !6688c#4#8#89I2#N#NOOrd   zFastAPI.attach_functionfunction_idinput_collection_idoutput_collectionr   r   c                    |                      dd| d| d| d||||d          }t          | t          |d         d	                   |d         d
         |d         d         |||||	  	        }	|                    dd          }
|	|
fS )z"Attach a function to a collection.r   r   r   r   z/functions/attach)r   r9  r;  r   r   attached_functionr   r   function_name	clientr   r   r>  r:  r;  r   r   r   createdTr   r   r   r   )r^   r9  r   r:  r;  r   r   r   r   r=  rA  s              rc   attach_functionzFastAPI.attach_function  s     &&hhh8hhBUhhh*%6 	  ' 	
 	
	 -I124899./7#$78I 3/

 

 

 --t
 
 "7++rd   zFastAPI.get_attached_functionc                     |                      dd| d| d| d|           }|d         }t          | t          |d                   |d         |d	         ||d
         |                    d          ||	  	        S )z;Get an attached function by name for a specific collection.r   r   r   r   z/functions/r=  r   r   r>  r;  r   r?  rB  )r^   r   r:  r   r   r   afs          rc   get_attached_functionzFastAPI.get_attached_function>  s     &&hhh8hhBUhhbfhh
 
	
 *+BtH~~F_- 3 !4566(##

 

 

 
	
rd   zFastAPI.detach_functiondelete_outputc                     |                      dd| d| d| d| d	d|i          }t          t          |d	                   S )
z/Detach a function and prevent any further runs.r   r   r   r   z/attached_functions/z/detachrG  r   successr+  )r^   r   r:  rG  r   r   r   s          rc   detach_functionzFastAPI.detach_functionZ  sj     &&xxx8xxBUxxkoxxx ' 
 
	 D)I.///rd   )Y__name__
__module____qualname__r5   rF   r   r   rM   rj   rl   r   r   r   r8   r7   	OPERATIONr   r   r3   r   r   r   r   r   r
   r   r   r   r   r0   r   r2   r   r   r   r   r   r'   r,  r   r   r   r   r   r   r   r   r   r    INDEX_AND_WALr	   r   r&   r   r   r   r$   r   r*   r   r"   r#   r   r   r  ALLr   r   r   r   r!   r  r  r  r!  r+   r%   r)  r-  r/  r4   r1  r4  r  r  rC  rF  rJ  __classcell__)rb   s   @rc   r;   r;   C   s       (Iv (I (I (I (I (I (IT +WS#X%6 + + + X+ S    X+C +s +d38n +QT + + + +  \%'?'IJJ63 6 6 6 X KJ6 \+-E-OPP %

 



 

 
	

 

 

 X QP

 \(*B*LMM %
 

 
 
	
 
 
 X NM
 \+-E-OPP %	
 	
	
 	
 
		
 	
 	
 X QP	
 \*,D,NOO  $ $$	 }  	
 
(	   X PO. \)+C+MNND# D$ D D D X OND \&(@(JKK.s .v . . . X LK. \-/G/QRRK< K K K X SRK \,.F.PQQ  $ $$(! !}! ! 	!
 ! 
/	"! ! ! X RQ!2 \-/G/QRR*<L$ $$69$	$ $ $ X SR$ \-/G/QRR $(AE15#$(      =>	
 -.    
   X SR@ \*,D,NOO %(	   	
 
   X PO \*,D,N   $(AE15$(
 

  
   =>	

 -.
 
 
 

 
 
 X 
& \#%=%GHH #'59EI$(
 

 3-
 12	

 $$AB
 
 
 

 
 
 X IH
0 \/#;#EFF
 %(   	
  
   X GF  \02J2TUU %(	
 

 
 	

 

 
 
 X VU
" \#%=%GHH
 %( ) 7#' #'#' v,#' 	#'
 #' #' 
#' #' #' X IH#'J \-/G/QRR %(	

 



 

 	


 


 

 

 X SR

 \"$<$FGG %(	$ $$ $ 	$
 
$ $ $ X HG$ \/#;#EFF $(
 

 
 	

 
 

 
 
 X GF
$ \.":"DEE "!%# $263$(,
 ,
,
 c],
 	,

 },
 ,
 !/,
 ,
 ,
 ,
 
,
 ,
 ,
 X FE,
\ \#%=%GHH "!%26$(  c] 	
 !/   
   X IH* \)+C+GHH 3Z YYTN	
 3  3 
 3  3  3 IH 3D \.":">?? *.)-#$(   	
 I& I& tn   
   X @?: \#%=%ABB
 ,0)-)-#$(   Z(	
 I& I& tn   
   X CB: \#%=%ABB *.)-#$(   	
 I& I& tn   
   X CB: \"$<$@AA
 "!%26<$(5
 5
5
 %5
 c]	5

 5
 5
 !/5
 5
 5
 5
 
5
 5
 5
 X BA5
n \/#;#?@@%t % % % X A@%
 \')A)KLL$S $ $ $ X ML$
 h    X \13K3UVV&s & & & WV& \*,D,N $$ $ $ $ $ \.0H0RSSC    X TS
 \+-E-IJJ ,0$($, $,$, $, "	$,
 $, c3h($, $, $, 
!4'	($, $, $, X KJ$,L \13K3OPP
 %(
 

 "
 	

 
 

 
 
 X QP
4 \+-E-IJJ
 $$(0 00 "0 	0
 0 0 
0 0 0 X KJ0 0 0 0 0rd   r;   )Prx   loggingtypingr   r   r   r   r   r   r	   r
   uuidr   rQ   urllib.parser|   	overridesr   $chromadb.api.models.AttachedFunctionr   %chromadb.api.collection_configurationr   r   r   r   chromadbr   chromadb.api.base_http_clientr   chromadb.typesr   r   r   r   chromadb.apir   "chromadb.execution.expression.planr   chromadb.api.typesr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   chromadb.authr0   r1   chromadb.configr2   r3   r4   r5    chromadb.telemetry.opentelemetryr6   r7   r8   chromadb.telemetry.productr9   	getLoggerrK  loggerr;   r   rd   rc   <module>re     sM     B B B B B B B B B B B B B B B B B B                        A A A A A A            !           8 8 8 8 8 8 J J J J J J J J J J " " " " " " 5 5 5 5 5 5                                         ,            ' & & & & &      O N N N N N N N N N N N         
 > = = = = =		8	$	$i0 i0 i0 i0 i0ni i0 i0 i0 i0 i0rd   