Ë
    lQêj´  ã                   ó  — d dl mZmZ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mZmZmZ d dlmZmZ d dlmZ d dlmZ  G d„ de«      Z G d	„ d
e«      Z ede¬«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    )ÚOptionalÚSequenceÚTypeVar)Úabstractmethod)Ú
CollectionÚMetadataEmbeddingRecordÚ	OperationÚRequestVersionContextÚVectorEmbeddingRecordÚWhereÚWhereDocumentÚVectorQueryÚVectorQueryResultÚSegmentÚSeqIdÚMetadata)Ú	ComponentÚSystem)ÚUUID)ÚEnumc                   ó$   — e Zd ZdZdZdZdZdZdZy)ÚSegmentTypez"urn:chroma:segment/metadata/sqlitez+urn:chroma:segment/vector/hnsw-local-memoryz.urn:chroma:segment/vector/hnsw-local-persistedz*urn:chroma:segment/vector/hnsw-distributedz#urn:chroma:segment/record/blockfilez%urn:chroma:segment/metadata/blockfileN)	Ú__name__Ú
__module__Ú__qualname__ÚSQLITEÚHNSW_LOCAL_MEMORYÚHNSW_LOCAL_PERSISTEDÚHNSW_DISTRIBUTEDÚBLOCKFILE_RECORDÚBLOCKFILE_METADATA© ó    ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/segment/__init__.pyr   r      s%   „ Ø1€FØEÐØKÐØCÐØ<ÐØ@Ñr#   r   c                   óˆ   — e Zd Zededefd„«       Zededefd„«       Z	ede
fd„«       Zededee   fd	„«       Zedd„«       Zy
)ÚSegmentImplementationÚsytstemÚsegmentc                  ó   — y ©Nr"   )Úselfr'   r(   s      r$   Ú__init__zSegmentImplementation.__init__    s   € àr#   Úrequest_version_contextÚreturnc                  ó   — y)z,Get the number of embeddings in this segmentNr"   )r+   r-   s     r$   ÚcountzSegmentImplementation.count$   ó   € ð 	r#   c                  ó   — y)z7Get the maximum SeqID currently indexed by this segmentNr"   ©r+   s    r$   Ú	max_seqidzSegmentImplementation.max_seqid)   r1   r#   Úmetadatac                  ó   — y)zÛGiven an arbitrary metadata map (e.g, from a collection), validate it and
        return metadata (if any) that is applicable and should be applied to the
        segment. Validation errors will be reported to the user.Nr"   )r5   s    r$   Úpropagate_collection_metadataz3SegmentImplementation.propagate_collection_metadata.   s   € ð
 r#   Nc                  ó   — y)z#Delete the segment and all its dataNr"   r3   s    r$   ÚdeletezSegmentImplementation.delete5   s   € ð 	r#   )r.   N)r   r   r   r   r   r   r,   r
   Úintr0   r   r4   Ústaticmethodr   r   r7   r9   r"   r#   r$   r&   r&      s›   „ Øð ð °ò ó ðð ðÐ-Bð Àsò ó ðð ð˜5ò ó ðð ð°ð ¸XÀhÑ=Oò ó ðð òó ñr#   r&   ÚS)Úboundc                   óz   — e Zd ZdZe	 	 	 	 	 	 ddedee   dee   dee	e
      dee   dee   d	ed
e	e   fd„«       Zy)ÚMetadataReaderz$Embedding Metadata segment interfaceNr-   ÚwhereÚwhere_documentÚidsÚlimitÚoffsetÚinclude_metadatar.   c                  ó   — y)zQuery for embedding metadata.Nr"   )r+   r-   r@   rA   rB   rC   rD   rE   s           r$   Úget_metadatazMetadataReader.get_metadataA   s   € ð 	r#   )NNNNNT)r   r   r   Ú__doc__r   r
   r   r   r   r   Ústrr:   Úboolr   rG   r"   r#   r$   r?   r?   >   s™   „ Ù.àð "&Ø26Ø'+Ø#Ø $Ø!%ñà!6ðð ˜‰ðð ! Ñ/ð	ð
 �h˜s‘mÑ$ðð ˜‰}ðð ˜‘ðð ðð 
Ð)Ñ	*òó ñr#   r?   c            	       ój   — e Zd ZdZe	 d	dedeee      dee	   fd„«       Z
ededeee      fd„«       Zy)
ÚVectorReaderz"Embedding Vector segment interfaceNr-   rB   r.   c                  ó   — y)z]Get embeddings from the segment. If no IDs are provided, all embeddings are
        returned.Nr"   )r+   r-   rB   s      r$   Úget_vectorszVectorReader.get_vectorsS   s   € ð 	r#   Úqueryc                  ó   — y)zYGiven a vector query, return the top-k nearest neighbors for vector in the
        query.Nr"   )r+   rO   s     r$   Úquery_vectorszVectorReader.query_vectors]   ó   € ð 	r#   r*   )r   r   r   rH   r   r
   r   r   rI   r   rN   r   r   rQ   r"   r#   r$   rL   rL   P   sv   „ Ù,àð (,ñà!6ðð �h˜s‘mÑ$ðð 
Ð'Ñ	(ò	ó ðð ðØ ðà	�(Ð,Ñ-Ñ	.òó ñr#   rL   c                   ón   — e Zd ZdZededee   fd„«       Zede	dee	   fd„«       Z
ede	deddfd	„«       Zy)
ÚSegmentManagerzfInterface for a pluggable strategy for creating, retrieving and instantiating
    segments as requiredÚ
collectionr.   c                  ó   — y)zsReturn the segments required for a new collection. Returns only segment data,
        does not persist to the SysDBNr"   )r+   rU   s     r$   Ú#prepare_segments_for_new_collectionz2SegmentManager.prepare_segments_for_new_collectionj   rR   r#   Úcollection_idc                  ó   — y)z‘Delete any local state for all the segments associated with a collection, and
        returns a sequence of their IDs. Does not update the SysDB.Nr"   )r+   rX   s     r$   Údelete_segmentszSegmentManager.delete_segmentsr   s   € ð 	r#   Ú	hint_typeNc                  ó   — y)z¿Signal to the segment manager that a collection is about to be used, so that
        it can preload segments as needed. This is only a hint, and implementations are
        free to ignore it.Nr"   )r+   rX   r[   s      r$   Úhint_use_collectionz"SegmentManager.hint_use_collectionx   s   € ð
 	r#   )r   r   r   rH   r   r   r   r   rW   r   rZ   r	   r]   r"   r#   r$   rT   rT   f   s€   „ ñð ðØ$ðà	�'Ñ	òó ðð ð¨Tð °h¸t±nò ó ðð
 ð°ð À)ð ÐPTò ó ñr#   rT   N) Útypingr   r   r   Úabcr   Úchromadb.typesr   r   r	   r
   r   r   r   r   r   r   r   r   Úchromadb.configr   r   Úuuidr   Úenumr   r   r&   r<   r?   rL   rT   r"   r#   r$   ú<module>rd      s|   ðß .Ñ .Ý ÷÷ ÷ ó ÷ .Ý Ý ôA�$ô Aô˜Iô ñ8 ˆCÐ,Ô-€ôÐ*ô ô$Ð(ô ô,�Yõ r#   