
    3iP                        S SK JrJrJrJrJrJrJrJrJ	r	J
r
Jr  S SKJr  S SKJrJrJrJr  S SKJr  S SKJrJrJrJr  S SKJr  S SKJrJrJrJ r J!r!J"r"  S SK#J$r$J%r%J&r&J'r'J(r(  S S	K)J*r*J+r+J,r-  S S
K.J/r/  S SK0r0S SK1J2r2J3r3J4r4J5r5J6r6  S SK7J8r8  S SK9J:r:  S SK;r;S SK<r<\<Rz                  " 5       S:w  a  S SK>r>O\<Rz                  " 5       S:X  a  S SK?r? " S S\5      r@g)    )CollectionMetadata
Embeddings	GetResultIDsWhereWhereDocumentInclude	Documents	MetadatasQueryResultURIs)	ServerAPI)CreateCollectionConfigurationUpdateCollectionConfiguration+create_collection_configuration_to_json_str+update_collection_configuration_to_json_str)UserIdentity)DEFAULT_DATABASEDEFAULT_TENANTSettingsSystem)ProductTelemetryClient)CollectionAddEventCollectionDeleteEventCollectionGetEventCollectionUpdateEventCollectionQueryEventClientCreateCollectionEvent)IncludeMetadataDocuments!IncludeMetadataDocumentsDistances"IncludeMetadataDocumentsEmbeddingsSchemaSearchResult)DatabaseTenant
Collection)SearchN)OptionalSequenceListDictAny)override)UUIDWindowsc                   B  ^  \ rS rSr% \R
                  \S'   \\S'   \\S'   S\	4U 4S jjr
\SMS	 j5       r\SMS
 j5       r\\4S\S\SS4S jj5       r\\4S\S\S\4S jj5       r\\4S\S\SS4S jj5       r\SS\4S\\   S\\   S\S\\   4S jj5       r\S\SS4S j5       r\S\S\4S j5       r\S\4S j5       r\\\4S\S\S\4S jj5       r\SS\\4S\\   S\\   S\S\S\\   4
S jj5       r\SSSS\\4S\S\\   S\\    S\\!   S\"S\S\S\4S jj5       r#\\\4S\S\S\S\4S jj5       r$\SSS\\4S\S\\   S\\    S\\!   S\S\S\4S  jj5       r%\\\4S\S\S\SS4S! jj5       r&\SSS\\4S"\'S#\\   S$\\!   S%\\(   S\S\SS4S& jj5       r)\\\4S'\'S#\S\S\S\4
S( jj5       r*\\\4S'\'S)\+\,   S\S\S\-4
S* jj5       r.\\\4S'\'S\S\S\4S+ jj5       r/\S,\\4S'\'S-\S\S\S\04
S. jj5       r1\SSSSS\2\\4S'\'S/\\3   S0\\4   S\\   S\\   S1\\5   S2\6S\S\S\04S3 jj5       r7\SSS\\4S/\3S'\'S4\8S5\\9   S6\\:   S7\\;   S\S\S\"4S8 jj5       r<\SSSS\\4S'\'S/\3S4\\8   S5\\9   S6\\:   S7\\;   S\S\S\"4S9 jj5       r=\SSS\\4S'\'S/\3S4\8S5\\9   S6\\:   S7\\;   S\S\S\"4S: jj5       r>\SS,SS\?\\4S'\'S;\8S/\\3   S<\S0\\4   S1\\5   S2\6S\S\S\@4S= jj5       rA\SSS\\4S'\'S/\\3   S0\\4   S1\\5   S\S\SS4S> jj5       rB\S\"4S? j5       rC\S\4S@ j5       rD\S\E4SA j5       rF\S\4SB j5       rG\S\\4SC\SD\SE\'SF\SG\\H\\I4      S\S\S\J\"\4   4SH jj5       rK\S\\4SC\SE\'SI\"S\S\S\"4SJ jj5       rL\S\M4SK j5       rNSLrOU =rP$ )NRustBindingsAPIC   bindingshnsw_cache_sizeproduct_telemetry_clientsystemc                 >  > [         TU ]  U5        U R                  [        5      U l        [
        R                  " 5       S:w  a(  [        R                  " [        R                  5      S   nO([        R                  R                  R                  5       nUS-  U l        g )Nr/   r      )super__init__requirer   r5   platformr6   resource	getrlimitRLIMIT_NOFILEctypeswindllmsvcrt_getmaxstdior4   )selfr6   max_file_handles	__class__s      K/home/james-whalen/.local/lib/python3.13/site-packages/chromadb/api/rust.pyr:   RustBindingsAPI.__init__H   s{     (,5K(L%??	)'11(2H2HI!L%}}33@@B  	    returnNc                    U R                   R                  R                  S5      (       a+  U R                   R                  R                  S5      nUS-   nOS nS nU R                   R                  R                  S5      nUS:X  a  [        R                  R
                  O[        R                  R                  nU R                   R                  R                  S5      nUS:X  a  [        R                  R                  O[        R                  R                  n[        R                  " UUUS9n[        R                  " U R                   R                  R                  S	5      UUU R                  S
9U l        g )Nis_persistentpersist_directoryz/chroma.sqlite3migrations_hash_algorithmmd5
migrationsapply)	hash_typemigration_modeurlallow_reset)rU   sqlite_db_configpersist_pathr4   )_systemsettingsr;   chromadb_rust_bindingsMigrationHashMD5SHA256MigrationModeApplyValidateSqliteDBConfigBindingsr4   r3   )rD   rW   sqlite_persist_pathrR   hash_type_bindingsrS   migration_mode_bindingssqlite_configs           rG   startRustBindingsAPI.startW   s<    <<  ((99<<00889LML".1B"BL"&LL))112MN	 E! #0044'55<< 	
 ..66|D ( #0066'55>> 	 
 /==(2#
 /77--55mD*% 00	
rI   c                     U ? g N)r3   rD   s    rG   stopRustBindingsAPI.stopz   s    MrI   nametenantc                 8    U R                   R                  X5      $ rj   )r3   create_databaserD   rn   ro   s      rG   rq   RustBindingsAPI.create_database       }},,T::rI   c                     U R                   R                  X5      nUR                  UR                  UR                  S.$ N)idrn   ro   )r3   get_databaserw   rn   ro   rD   rn   ro   databases       rG   rx   RustBindingsAPI.get_database   s5    ==--d;++MMoo
 	
rI   c                 8    U R                   R                  X5      $ rj   )r3   delete_databaserr   s      rG   r}   RustBindingsAPI.delete_database   rt   rI   limitoffsetc                     U R                   R                  XU5      nU Vs/ s H'  nUR                  UR                  UR                  S.PM)     sn$ s  snf rv   )r3   list_databasesrw   rn   ro   )rD   r   r   ro   	databasesrz   s         rG   r   RustBindingsAPI.list_databases   s\     MM00G	 &
 &	 kk "//
 &
 	
 
s   .Ac                 8    U R                   R                  U5      $ rj   )r3   create_tenant)rD   rn   s     rG   r   RustBindingsAPI.create_tenant   s    }}**400rI   c                 ^    U R                   R                  U5      n[        UR                  S9$ )N)rn   )r3   
get_tenantr%   rn   rr   s      rG   r   RustBindingsAPI.get_tenant   s%    ))$/6;;''rI   c                 6    U R                   R                  5       $ rj   )r3   	heartbeatrk   s    rG   r   RustBindingsAPI.heartbeat   s    }}&&((rI   rz   c                 8    U R                   R                  X5      $ rj   )r3   count_collections)rD   ro   rz   s      rG   r   !RustBindingsAPI.count_collections   s     }}..v@@rI   c                 &   U R                   R                  XX45      nU Vs/ s Hc  n[        UR                  UR                  UR
                  UR                  UR                  UR                  UR                  UR                  S9PMe     sn$ s  snf )N)rw   rn   serialized_schemaconfiguration_jsonmetadata	dimensionro   rz   )r3   list_collectionsCollectionModelrw   rn   schemaconfigurationr   r   ro   rz   )rD   r   r   ro   rz   collections
collections          rG   r    RustBindingsAPI.list_collections   s     mm44UFU *
 *
 ==__","3"3#-#;#;#,,$..!((#,,	 *
 	
 
s   A*BFr   r   r   get_or_createc                    U R                   R                  [        [        [        5      S95        U(       a  [        X45      nOS nU(       a%  [        R                  " UR                  5       5      n	OS n	U R                  R                  UUU	UUUU5      n
[        U
R                  U
R                  U
R                  U
R                  U
R                  U
R                   U
R"                  U
R$                  S9nU$ )N)collection_uuidrw   rn   r   r   r   r   ro   rz   )r5   capturer   strrw   r   jsondumpsserialize_to_jsonr3   create_collectionr   rn   r   r   r   r   ro   rz   )rD   rn   r   r   r   r   ro   rz   configuration_json_str
schema_strr   collection_models               rG   r   !RustBindingsAPI.create_collection   s     	%%--' #B	
 %P&" &*"F$<$<$>?JJ]]44"

 +}})77(//(( **$$((	
  rI   c                     U R                   R                  XU5      n[        UR                  UR                  UR
                  UR                  UR                  UR                  UR                  UR                  S9$ )Nr   )r3   get_collectionr   rw   rn   r   r   r   r   ro   rz   )rD   rn   ro   rz   r   s        rG   r   RustBindingsAPI.get_collection  sk     ]]11$I
}})77(//(( **$$((	
 		
rI   c           	      *    U R                  XX4SXV5      $ )NT)r   )rD   rn   r   r   r   ro   rz   s          rG   get_or_create_collection(RustBindingsAPI.get_or_create_collection  s      %%-4
 	
rI   c                 <    U R                   R                  XU5        g rj   )r3   delete_collectionry   s       rG   r   !RustBindingsAPI.delete_collection#  s     	''h?rI   rw   new_namenew_metadatanew_configurationc                 z    U(       a  [        U5      nOS nU R                  R                  [        U5      X#U5        g rj   )r   r3   update_collectionr   )rD   rw   r   r   r   ro   rz   new_configuration_json_strs           rG   _modifyRustBindingsAPI._modify,  s;     )T!*& *.&''GX-G	
rI   collection_idc                     [        S5      e)Nz6Collection forking is not implemented for Local ChromaNotImplementedError)rD   r   r   ro   rz   s        rG   _forkRustBindingsAPI._fork@  s     "D
 	
rI   searchesc                     [        S5      e)Nz*Search is not implemented for Local Chromar   )rD   r   r   ro   rz   s        rG   _searchRustBindingsAPI._searchL  s     ""NOOrI   c                 L    U R                   R                  [        U5      X#5      $ rj   )r3   countr   )rD   r   ro   rz   s       rG   _countRustBindingsAPI._countV  s      }}""3}#5vHHrI   
   nc                 0    U R                  UUUU[        S9$ )N)r   ro   rz   include)_getr!   )rD   r   r   ro   rz   s        rG   _peekRustBindingsAPI._peek_  s)     yy6  
 	
rI   idswherewhere_documentr   c
                 ,   U(       a  [        U5      OSn
U R                  R                  [        [	        U5      U
U(       a  UOSSU;   a  U
OSSU;   a  U
OSSU;   a  U
OSS95        U R
                  R                  [	        U5      UU(       a  [        R                  " U5      OS UU=(       d    SU(       a  [        R                  " U5      OS UUU	5	      n[        UR                  UR                  UR                  UR                  US UR                  S9$ )Nr   	metadatas	documentsuris)r   	ids_countr   include_metadatainclude_documentsinclude_uris)r   
embeddingsr   r   includeddatar   )lenr5   r   r   r   r3   getr   r   r   r   r   r   r   r   )rD   r   r   r   r   r   r   r   ro   rz   
ids_amountrust_responses               rG   r   RustBindingsAPI._geto  s     "%SX!
%%-- #M 2$$e!/:g/E10;w0F*A+1W+<Z!		
 ))!&DJJuDKa*8DJJ~&d

 !!$//#--###--
 	
rI   r   r   r   r   c	                    U R                   R                  [        [        U5      [	        U5      Ub  [	        U5      OSUb  [	        U5      OSUb  [	        U5      OSS95        U R
                  R                  U[        U5      UUUUUU5      $ )Nr   )r   
add_amountwith_metadatawith_documents	with_uris)r5   r   r   r   r   r3   add)	rD   r   r   r   r   r   r   ro   rz   s	            rG   _addRustBindingsAPI._add  s     	%%-- #M 2s8*3*?c#hQ+4+@s3xa&*&6#c(A	
 }}  	
 		
rI   c	                 Z   U R                   R                  [        [        U5      [	        U5      U(       a  [	        U5      OSU(       a  [	        U5      OSU(       a  [	        U5      OSU(       a  [	        U5      OSS95        U R
                  R                  [        U5      UUUUUUU5      $ )Nr   )r   update_amountwith_embeddingsr   r   r   )r5   r   r   r   r   r3   update	rD   r   r   r   r   r   r   ro   rz   s	            rG   _updateRustBindingsAPI._update  s     	%%--! #M 2!#h3=J109c)nq1:s9~'+#d)		
 }}##	
 		
rI   c	           
      X    U R                   R                  [        U5      UUUUUUU5      $ rj   )r3   upsertr   r   s	            rG   _upsertRustBindingsAPI._upsert  s8     }}##	
 		
rI   query_embeddings	n_resultsc
                 `   [        U5      n
U(       a  [        U5      OSnU R                  R                  [        [	        U5      U
UUUb  U
OSUb  U
OSSU;   a  U
OSSU;   a  U
OSSU;   a  U
OSSU;   a  U
OSS9
5        U R
                  R                  [	        U5      UUUU(       a  [        R                  " U5      OS U(       a  [        R                  " U5      OS UUU	5	      n[        UR                  UR                  UR                  UR                  US UR                  UR                  S9$ )Nr   r   r   r   	distances)
r   query_amountfiltered_ids_amountr   with_metadata_filterwith_document_filterinclude_metadatasr   r   include_distances)r   r   r   r   r   r   r   r   )r   r5   r   r   r   r3   queryr   r   r   r   r   r   r   r   r   )rD   r   r   r   r   r   r   r   ro   rz   r   r   r   s                rG   _queryRustBindingsAPI._query  s*    +,*-c#h1%%--  #M 2)$7#5:5F\A5C5O\UV2=2H,a2=2H,a-3w->\A2=2H,a	
 ++!&DJJuD*8DJJ~&d

 !!$//#--###--#--	
 		
rI   c                 ,   U R                   R                  [        [        U5      SS95        U R                  R                  [        U5      UU(       a  [        R                  " U5      OS U(       a  [        R                  " U5      UU5      $ S UU5      $ )Nr   )r   delete_amount)r5   r   r   r   r3   deleter   r   )rD   r   r   r   r   ro   rz   s          rG   _deleteRustBindingsAPI._delete-  s     	%%--! !$M 2		
 }}##!&DJJuD*8DJJ~&
 	
 ?C
 	
rI   c                 6    U R                   R                  5       $ rj   )r3   resetrk   s    rG   r
  RustBindingsAPI.resetI  s    }}""$$rI   c                 6    U R                   R                  5       $ rj   )r3   get_versionrk   s    rG   r  RustBindingsAPI.get_versionM  s    }}((**rI   c                 .    U R                   R                  $ rj   )rX   rY   rk   s    rG   get_settingsRustBindingsAPI.get_settingsQ  s    ||$$$rI   c                 6    U R                   R                  5       $ rj   )r3   get_max_batch_sizerk   s    rG   r  "RustBindingsAPI.get_max_batch_sizeU  s    }}//11rI   	task_nameoperator_nameinput_collection_idoutput_collection_nameparamsc                     [        S5      ezCTasks are not supported in the Rust bindings (local embedded mode).zTasks are only supported when connecting to a Chroma server via HttpClient. The Rust bindings (embedded mode) do not support task operations.r   )rD   r  r  r  r  r  ro   rz   s           rG   create_taskRustBindingsAPI.create_taskY  s     "P
 	
rI   delete_outputc                     [        S5      er  r   )rD   r  r  r  ro   rz   s         rG   remove_taskRustBindingsAPI.remove_taskj  s     "P
 	
rI   c                 *    [        S[        [        /S9$ )N )user_idro   r   )r   r   r   rk   s    rG   get_user_identity!RustBindingsAPI.get_user_identityz  s    !'(
 	
rI   )r3   r4   r5   )rJ   N)Q__name__
__module____qualname____firstlineno__rZ   rb   __annotations__intr   r   r:   r-   rg   rl   r   r   rq   r$   rx   r}   r(   r)   r   r   r%   r   r   r   r   r   r   r"   r   r   boolr   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   r    r   r  r  r
  r  r   r  r  r+   r,   tupler  r   r   r%  __static_attributes____classcell__)rF   s   @rG   r1   r1   C   s
   $---44
v 
  
  
D  
 7E ;C ; ;$ ; ; 4B 
 
c 
x 
 
 7E ;C ; ;$ ; ;   $ $$	
}
 
 	

 
(	
 
  1# 1$ 1 1 (s (v ( ( )3 ) ) *<LAA69A	A A
   $ $$(
}
 
 	

 
 
/	"
 
,  $(AE15#$(1 1   1    =>	1 
 -.1  1  1  1  
1  1 f  %(	

 
 	

 

 
$  $(AE15$(

  
   =>	

 -.
 
 
 

 
  %(	@@ @ 	@
 
@ @  #'59EI$(

 3-
 12	

 $$AB
 
 
 

 
& 
 %(	
	
 	
 		

 	
 
	
 	
 
 %(PP v,P 	P
 P 
P P  %(	II I 	I
 
I I  $(

 
 	

 
 

 
  "!%# $263$(,
,
 c],
 	,

 },
 ,
 !/,
 ,
 ,
 ,
 
,
 ,
\  *.)-#$(

 
 	

 I&
 I&
 tn
 
 
 

 
@ 
 ,0)-)-#$(

 
 Z(	

 I&
 I&
 tn
 
 
 

 
B  *.)-#$(

 
 	

 I&
 I&
 tn
 
 
 

 
, 
 "!%26<$(2
2
 %2
 c]	2

 2
 2
 !/2
 2
 2
 2
 
2
 2
h  "!%26$(

 c]
 	

 !/
 
 
 

 
6 %t % % +S + + %h % % 2C 2 2  ,0$(

 
 "	

 !$
 c3h(
 
 
 
tSy	
 
  
 $$(

 "
 	

 
 
 

 
 
< 
 
rI   r1   )Achromadbr   r   r   r   r   r   r	   r
   r   r   r   chromadb.apir   %chromadb.api.collection_configurationr   r   r   r   chromadb.authr   chromadb.configr   r   r   r   chromadb.telemetry.productr   !chromadb.telemetry.product.eventsr   r   r   r   r   r   chromadb.api.typesr   r    r!   r"   r#   chromadb.typesr$   r%   r&   r   "chromadb.execution.expression.planr'   rZ   typingr(   r)   r*   r+   r,   	overridesr-   uuidr.   r   r<   r6   r=   r@   r1    rI   rG   <module>r?     s       #  ' N N =   K J 5  7 6    ??	!__)#}
i }
rI   