
    LKi`                         S SK JrJr  S SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJrJrJr  S SKJrJr  S SKJr  S S	KJrJrJr  S
\\   S\\   4S jrS
\\   S\\   4S jrS
\\   S\\   4S jr " S S\5      rg)    )OptionalSequence)	overrides)	GetResultMetadataQueryResult)System)Executor)	CountPlanGetPlanKNNPlan)MetadataReaderVectorReader)LocalSegmentManager)
CollectionVectorQueryVectorQueryResultmetadatareturnc                     U (       d  g0 nU R                  5        H!  u  p#UR                  S5      (       a  M  X1U'   M#     [        U5      S:X  a  gU$ )z[Remove any chroma-specific metadata keys that the client shouldn't see from a metadata map.Nzchroma:r   )items
startswithlen)r   resultkvs       c/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/execution/executor/local.py_clean_metadatar      sL    F ||I&&1I ! 6{aM    c                 :    U (       a  SU ;   a  [        U S   5      $ g)z2Retrieve the document (if any) from a Metadata mapzchroma:documentNstrr   s    r   _docr$      s#     %18-.//r   c                 :    U (       a  SU ;   a  [        U S   5      $ g)z-Retrieve the uri (if any) from a Metadata mapz
chroma:uriNr!   r#   s    r   _urir&   #   s!     LH,8L)**r   c                      ^  \ rS rSr% \\S'   S\4U 4S jjr\S\	S\
4S j5       r\S\S\4S j5       r\S\S\4S	 j5       rS
\S\4S jrS
\S\4S jrSrU =r$ )LocalExecutor+   _managersystemc                 X   > [         TU ]  U5        U R                  [        5      U l        g N)super__init__requirer   r*   )selfr+   	__class__s     r   r/   LocalExecutor.__init__.   s!     %89r   planr   c                     U R                  UR                  R                  5      R                  UR                  R                  5      $ r-   )_metadata_segmentscan
collectioncountversion)r1   r4   s     r   r9   LocalExecutor.count2   s2    %%dii&:&:;AA$))BSBSTTr   c           
         U R                  UR                  R                  5      R                  UR                  R                  UR
                  R                  UR
                  R                  UR
                  R                  UR                  R                  UR                  R                  SS9nU Vs/ s H  o3S   PM	     nnS nS nS nS n[        5       n	UR                  R                  (       a  [        U5      S:  a[  U R                  UR                  R                  5      R!                  XAR                  R                  S9n
U
 Vs/ s H  oS   PM	     nnO
[        5       nU	R#                  S5        UR                  R$                  (       a/  U Vs/ s H  n['        US   5      PM     nnU	R#                  S	5        UR                  R(                  (       a/  U Vs/ s H  n[+        US   5      PM     nnU	R#                  S
5        UR                  R,                  (       a/  U Vs/ s H  n[/        US   5      PM     nnU	R#                  S5        [1        UUUUS UU	S9$ s  snf s  snf s  snf s  snf s  snf )NTrequest_version_contextwherewhere_documentidslimitoffsetinclude_metadataidr   )rA   r>   	embedding
embeddingsr   	documentsuris	metadatas)rA   rG   rH   rI   datarJ   included)r6   r7   r8   get_metadatar:   filterr?   r@   user_idsrB   rC   list
projectionrF   r   _vector_segmentget_vectorsappenddocumentr$   urir&   r   r   r   )r1   r4   recordsrrA   rG   rH   rI   rJ   rL   vectorsr   s               r   getLocalExecutor.get6   s   (()=)=>KK$(II$5$5++##;;55$$**""::$$! L 
 !((1w(
		6??$$7|a..tyy/C/CDPPYY5F5F Q  7>>gng
>
!V
OOL)??##6=>ga
m,gI>OOK(??189AD:'D9OOF#??##AHIA:7IIOOK( !
 	
= ) ? ? : Js   5I$I)I. I3*I8c                 4
   S nUR                   R                  (       d6  UR                   R                  (       d  UR                   R                  (       a  U R	                  UR
                  R                  5      R                  UR
                  R                  UR                   R                  UR                   R                  UR                   R                  S SSS9nU Vs/ s H  oDS   PM	     nn/ /[        UR                  R                  5      -  nUb  [        U5      S:  a  [        UR                  R                  UR                  R                  UUR                  R                  S UR
                  R                  S9nU R!                  UR
                  R                  5      R#                  U5      nU VVs/ s H  ow Vs/ s H  oDS   PM	     snPM     nnnS n	S n
S nS nS n[%        5       nUR                  R                  (       a7  U VVs/ s H  ow Vs/ s H  oDS   PM	     snPM     n	nnUR'                  S5        UR                  R(                  (       a7  U VVs/ s H  ow Vs/ s H  oDS   PM	     snPM     nnnUR'                  S	5        UR                  R*                  (       d7  UR                  R,                  (       d  UR                  R.                  (       Ga  [%        [1        U VVs/ s H  ow  H  oPM     M     snn5      5      nU R	                  UR
                  R                  5      R                  UR
                  R                  S S US SS
S9nU Vs0 s H  oDS   US   _M     nnUR                  R*                  (       aO  U VVs/ s H/  nU Vs/ s H  n[3        UR5                  US 5      5      PM      snPM1     n
nnUR'                  S5        UR                  R.                  (       aO  U VVs/ s H/  nU Vs/ s H  n[7        UR5                  US 5      5      PM      snPM1     nnnUR'                  S5        UR                  R,                  (       aO  U VVs/ s H/  nU Vs/ s H  n[9        UR5                  US 5      5      PM      snPM1     nnnUR'                  S5        [;        UU	U
US UUUS9$ s  snf s  snf s  snnf s  snf s  snnf s  snf s  snnf s  snnf s  snf s  snf s  snnf s  snf s  snnf s  snf s  snnf )Nr   Fr=   rE   )rY   r   allowed_idsinclude_embeddingsoptionsr>   rF   rG   distance	distancesTr   rH   rI   rJ   )rA   rG   rH   rI   rK   rJ   ra   rL   )rN   rO   r?   r@   r6   r7   r8   rM   r:   r   knnrG   r   fetchrQ   rF   rR   query_vectorsrP   rT   rankrU   r   rV   setr$   rZ   r&   r   r   )r1   r4   prefiltered_idsrW   rX   knnsqueryr   rA   rG   rH   rI   rJ   ra   rL   rE   
merged_idshydrated_recordsmetadata_by_ids                      r   rb   LocalExecutor.knnj   sW   ;;4;;#4#48R8R,,TYY-A-ABOO(,		(9(9kk''#{{99KK((!& P G 1881wO879dSATAT=U6U
 "c/&:Q&>++((..+#'??#<#<(,		(9(9E ''		(<(<=KKERD7;<tV(A$(t<
			6??$$IMNv6:6a[>6:JNOOL)??GKLtV8AJ-8tILOOK(??##t'?'?4??CVCVCVcC"IC&&B2&2C"IJKJ#55		$$ l(,		(9(9#!%    ?OO>Ngq}4>NNO'' #&"% CII&BT.,,R67&I"%   ,"" #&"% CII&BT.,,R67&I"%   ''' #&"% NTTVr_^%7%7D%ABVT"%   , !	
 		
O 9$ )< ;N 9L #J P J J Us    S<	SSS	SS(S#	S(,S#:S(6S.&S4
S>$%S9	S>
T	%T3T	.
T8%TTSS#S(9S>T	Tr8   c                 V    U R                   R                  UR                  [        5      $ r-   )r*   get_segmentrE   r   r1   r8   s     r   r6   LocalExecutor._metadata_segment   s    }}((GGr   c                 V    U R                   R                  UR                  [        5      $ r-   )r*   ro   rE   r   rp   s     r   rR   LocalExecutor._vector_segment   s    }}((EEr   )r*   )__name__
__module____qualname____firstlineno__r   __annotations__r	   r/   r   r   intr9   r   r   rZ   r   r   rb   r   r   r6   r   rR   __static_attributes____classcell__)r2   s   @r   r(   r(   +   s    !!:v : U) U U U 1
 1
I 1
 1
f \
 \
K \
 \
|HJ H> HF* F F Fr   r(   N)typingr   r   r   chromadb.api.typesr   r   r   chromadb.configr	   $chromadb.execution.executor.abstractr
   "chromadb.execution.expression.planr   r   r   chromadb.segmentr   r   #chromadb.segment.impl.manager.localr   chromadb.typesr   r   r   r   r"   r$   r&   r(    r   r   <module>r      s    %  ? ? " 9 J J 9 C E E
hx0 
Xh5G 
8H% (3- 8H% (3- bFH bFr   