
    <i@                         S SK rS SKrS SKrS SKrS SKrS SKrS SK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  S SKrS SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJ r!  S SK"J#r#J$r$J%r%  Sr& " S S\5      r'g)    N)deepcopy)TextIOWrapper)Any	GeneratorIterableMappingSequenceget_args)uuid4)show_warningshow_warning_once)to_dict)
QdrantBase)common_types)models)LocalCollectionDEFAULT_VECTOR_NAMEignore_mentioned_ids_filterz	meta.jsonc            !         ^  \ rS rSrSrSrSzS\S\SS4U 4S jjjr\	S\4S	 j5       r
S
\SS4S jrS{S jrS{S jrS\S\4S jr       S|S\S\R$                  \\   -  \\\\   4   -  \R.                  -  \R0                  -  S\R2                  S-  S\R4                  S-  S\S\S-  S\\\   -  \R8                  -  S\\\   -  S\S-  S
\S\\R:                     4S jjr    S}S\S\R2                  S-  S\S\S\S-  S
\S\R>                  4S jjr     S}S\S\R2                  S-  S\S\S\S-  S
\S\RB                  4S jjr"S\S\RF                  S-  S\S-  S\RH                  S-  S\\RF                  \%\RL                     4   4
S jr'S \\RP                     \RP                  -  S-  S\S\\RP                     4S! jr)S \RP                  S\S\RP                  4S" jr*           S~S\S\RF                  S-  S\S-  S \RP                  \\RP                     -  S-  S\R2                  S-  S\R4                  S-  S\S\S-  S\\\   -  \R8                  -  S\\\   -  S\S-  S\RH                  S-  S
\S\RV                  4S# jjr,S\S$\\RZ                     S
\S\\RV                     4S% jr.            SS\S&\S\RL                  \\   -  \\\      -  \R^                  -  \RF                  -  \R$                  -  \R`                  -  \Rb                  -  \Rd                  -  S-  S\S-  S \RP                  \\RP                     -  S-  S\R2                  S-  S\R4                  S-  S\S'\S\\\   -  \R8                  -  S\\\   -  S\S-  S(\Rf                  S-  S\RH                  S-  S
\S\Rh                  4 S) jjr5      SS\S*\R2                  S-  S\S+\Rl                  S-  S\RL                  S-  S\\\   -  \R8                  -  S\\\   -  S
\S\\\Rn                     \RL                  S-  4   4S, jjr8  SS\S-\R2                  S-  S.\S
\S\Rr                  4
S/ jjr:   SS\S0\S1\R2                  S-  S\S.\S
\S\Rv                  4S2 jjr< SS\S3\Rz                  S4\R2                  S-  S
\S\R|                  4
S5 jjr? SS\S3\\R                     S4\R2                  S-  S
\S\R|                  4
S6 jjrAS\S7\\   S3\R                  S
\S\R|                  4
S8 jrC  SS\S9\\RL                     S\\\   -  \R8                  -  S\\\   -  S
\S\\Rn                     4S: jjrD\ESS;\S\R|                  4S< jj5       rFS\S=\R                  S
\S\R|                  4S> jrG SS\S?\R                  S3\R                  S0\S-  S
\S\R|                  4S@ jjrIS\S?\R                  S3\R                  S
\S\R|                  4
SA jrJS\SB\\   S3\R                  S
\S\R|                  4
SC jrKS\S=\R                  S
\S\R|                  4SD jrLS\SE\\R                     S
\S\\R|                     4SF jrNSG\\R                     S
\S\4SH jrPS\S
\S\R                  4SI jrRS
\S\R                  4SJ jrSS
\S\R                  4SK jrUS\S
\S\R                  4SL jrWS\S
\S\4SM jrX  SS\SN\Y\\R                  4   S-  SO\R                  S-  S
\S\4
SP jjr[S\S\S-  4SQ jr\S\S
\S\4SR jr]   SS\SS\R                  \Y\\R                  4   -  S-  SN\Y\\R                  4   S-  SO\R                  S-  S
\S\4ST jjr_   SS\SS\R                  \Y\\R                  4   -  S-  SN\Y\\R                  4   S-  SO\R                  S-  S
\S\4SU jjr` SS\S3\a\R                     S4\R2                  S-  S
\SS4
SV jjrc SS\S3\a\R                  \Rn                  -     S4\R2                  S-  SS4SW jjrd   SS\S7\e\\R$                  4   \R$                  -  \a\R                     -  S?\a\e\\4      S-  S9\a\RL                     S-  S4\R2                  S-  S
\SS4SX jjrg  SS\SY\SZ\R                  S-  S[\R                  S-  S
\S\R|                  4S\ jjriS\SY\S
\S\R|                  4S] jrjS\S
\S\\R                     4S^ jrlS\S
\S\R                  S-  4S_ jrmS\S`\S
\S\4Sa jrnS
\S\\R                     4Sb jroS
\S\R                  4Sc jrpS`\S
\S\4Sd jrqS\S\S
\S\4Se jrrS\Sf\S
\S\\R                     4Sg jrsS\Sf\S
\S\R                  S-  4Sh jrtS\Sf\S`\S
\S\4
Si jruS\Sf\S\S
\S\4
Sj jrv   SS\Sk\R                  Sl\S-  Sm\S-  Sn\\   S-  S
\S\4So jjrxS\Sk\R                  S
\S\4Sp jryS\R                  4Sq jr{S\Sr\R                  S
\S\4Ss jr}S\S\R                  4St jrS\GR                   4Su jrS\4Sv jrSw\S
\S\4Sx jrSyrU =r$ )QdrantLocal#   a,  
Everything Qdrant server can do, but locally.

Use this implementation to run vector search without running a Qdrant server.
Everything that works with local Qdrant will work with server Qdrant as well.

Use for small-scale data, demos, and tests.
If you need more speed or size, use Qdrant server.
i N  locationforce_disable_check_same_threadreturnNc                    > [         TU ]  5         X l        Xl        US:g  U l        0 U l        0 U l        SU l        U R                  5         SU l	        g)z
Initialize local Qdrant.

Args:
    location: Where to store data. Can be a path to a directory or `:memory:` for in-memory storage.
    force_disable_check_same_thread: Disable SQLite check_same_thread check. Use only if you know what you are doing.
z:memory:NF)
super__init__r   r   
persistentcollectionsaliases_flock_file_load_closed)selfr   r   	__class__s      Z/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/local/qdrant_local.pyr   QdrantLocal.__init__0   sN     	/N, "j079')15

"    c                     U R                   $ N)r#   r$   s    r&   closedQdrantLocal.closedB   s    ||r(   kwargsc                    SU l         U R                  R                  5        HK  nUb  UR                  5         M  [	        S[        U R                  R                  5       5       3[        SS9  MM      U R                  bV  U R                  R                  (       d:  SS K
nUR                  U R                  5        U R                  R                  5         g g g ! [         a     g f = f)NTzLCollection appears to be None before closing. The existing collections are:    )messagecategory
stacklevelr   )r#   r   valuescloser   listkeysUserWarningr!   r,   portalockerunlock	TypeError)r$   r.   
collectionr9   s       r&   r5   QdrantLocal.closeF   s    **113J%  "jD,,113457( 		 4		+D4D4D4K4K" ""4#3#34  &&( 5L+  		s   2A!C 
C#"C#c                 f   SnU R                   (       d  g [        R                  R                  U R                  [
        5      n[        R                  R                  U5      (       d^  [        R                  " U R                  SS9  [        US5       nUR                  [        R                  " 0 0 S.5      5        S S S 5        GO[        US5       n[        R                  " U5      nUS   R                  5        H  u  pVU H  nUR                  US 5        M     [        R                   " S0 UD6nU R#                  U5      n	[%        UU	U R&                  S9n
XR(                  U'   [+        U
R,                  5      U R.                  :  d  M  [1        S	U R.                  S
 SU S[+        U
R,                  5       S3[2        SS9  M     US   U l        S S S 5        [        R                  R                  U R                  S5      n[        R                  R                  U5      (       dE  [        R                  " U R                  SS9  [        US5       nUR                  S5        S S S 5        [        US5      U l        SS Kn UR;                  U R6                  UR<                  R>                  UR<                  R@                  -  5        g ! , (       d  f       N= f! , (       d  f       GN= f! , (       d  f       N= f! URB                  RD                   a    [G        SU R                   S35      ef = f)N)	init_fromTexist_okwr   r    rr   )r   z=Local mode is not recommended for collections with more than ,z points. Collection <z> contains zd points. Consider using Qdrant in Docker or Qdrant Cloud for better performance with large datasets.   )r2   r3   r    z.lockztmp lock filezr+r   zStorage folder zw is already accessed by another instance of Qdrant client. If you require concurrent access, use Qdrant server instead. )$r   ospathjoinr   META_INFO_FILENAMEexistsmakedirsopenwritejsondumpsloaditemspoprest_modelsCreateCollection_collection_pathr   r   r   lenidsLARGE_DATA_THRESHOLDr   r8   r    r!   r9   lock	LockFlags	EXCLUSIVENON_BLOCKING
exceptionsLockExceptionRuntimeError)r$   deprecated_config_fields	meta_pathfmetacollection_nameconfig_jsonkeyconfigcollection_pathr<   lock_file_pathr9   s                r&   r"   QdrantLocal._load^   s   #1 GGLL0BC	ww~~i((KK5i%

2"#EFG &% i%yy|484G4M4M4O0O0  $T2 1 )99HKHF&*&;&;O&LO!0'8<8\8\"J
 9C$$_5:>>*T-F-FF$[#88; <++:*;;s:>>GZF[ \33
 &1'( 5P0  $I5 &8 dmmW=ww~~n--KK5nc*a( +5		  %%//+2G2G2T2TTU &% &%> +* %%33 	!$-- 1P Q 	s9   )KB5K
AKK+ AK< 
K
K(+
K9<4L0c                    U R                   (       d  g U R                  (       a  [        S5      e[        R                  R                  U R                  [        5      n[        US5       nUR                  [        R                  " U R                  R                  5        VVs0 s H  u  p4U[        UR                  5      _M     snnU R                   S.5      5        S S S 5        g s  snnf ! , (       d  f       g = f)N=QdrantLocal instance is closed. Please create a new instance.rB   rC   )r   r,   ra   rH   rI   rJ   r   rK   rN   rO   rP   rQ   r   rS   r   ri   r    )r$   rc   rd   rf   r<   s        r&   _saveQdrantLocal._save   s    ;;^__GGLL0BC	)S!QGG

 @D?O?O?U?U?W(?W ; ,WZ5F5F-GG?W( $(<<
 "!(	 "!s   )9C,""C&C,&C,,
C:rf   c                     U R                   (       a  [        S5      eXR                  ;   a  U R                  U   $ XR                  ;   a  U R                  U R                  U      $ [	        SU S35      e)Nrn   Collection 
 not found)r,   ra   r   r    
ValueErrorr$   rf   s     r&   _get_collectionQdrantLocal._get_collection   sk    ;;^__...##O44ll*##DLL$ABB;&7zBCCr(   query_vectorquery_filtersearch_paramslimitoffsetwith_payloadwith_vectorsscore_thresholdc
           
      N    U R                  U5      nUR                  UUUUUUU	S9$ )N)rx   ry   r{   r|   r}   r~   r   )rv   search)r$   rf   rx   ry   rz   r{   r|   r}   r~   r   r.   r<   s               r&   r   QdrantLocal.search   sA    " ))/:
  %%%%+ ! 
 	
r(   sampleusingc                 D    U R                  U5      nUR                  X#XES9$ N)ry   r{   r   r   )rv   search_matrix_offsetsr$   rf   ry   r{   r   r   r.   r<   s           r&   r   !QdrantLocal.search_matrix_offsets   s1     ))/:
//%6 0 
 	
r(   c                 D    U R                  U5      nUR                  X#XES9$ r   )rv   search_matrix_pairsr   s           r&   r   QdrantLocal.search_matrix_pairs   s1     ))/:
--%6 . 
 	
r(   querylookup_fromc           	        ^^^^^^ U(       a  UR                   OTmU R                  T5      mUb  UO[        nUb  UR                  b  UR                  OUmTTR                  ;   nTTR
                  ;   nU(       a  TR                  mO U(       a  TR
                  mOTR                  m[        5       mS[        R                  S[        R                  4UUUUUU4S jjn[        U5      n[        U[        R                  5      (       a  U" UR                  5      Ul        UT4$ [        U[        R                  5      (       a  UR                   R"                  b;  UR                   R"                   V	s/ s H
  o" U	5      PM     sn	UR                   l        UR                   R$                  b;  UR                   R$                   V	s/ s H
  o" U	5      PM     sn	UR                   l        UT4$ [        U[        R&                  5      (       a  U" UR(                  R*                  5      UR(                  l        [        UR(                  R,                  [.        5      (       a  UR(                  R,                  OUR(                  R,                  /n
U
 Vs/ s H8  n[        R0                  " U" UR$                  5      U" UR"                  5      S9PM:     snUR(                  l        UT4$ [        U[        R2                  5      (       a  [        UR,                  [.        5      (       a  UR,                  OUR,                  /n
U
 Vs/ s H8  n[        R0                  " U" UR$                  5      U" UR"                  5      S9PM:     snUl        UT4$ [        U[        R4                  5      (       a   UT4$ [        U[        R6                  5      (       a   UT4$ [        U[        R8                  5      (       a   UT4$ s  sn	f s  sn	f s  snf s  snf )z
Resolves any possible ids into vectors and returns a new query object, along with a set of the mentioned
point ids that should be filtered when searching.
vector_inputr   c                   > [        U [        [        R                  5      5      (       a  [        U [        R
                  5      (       a  [        U 5      n U nUTR                  ;  a  [        SU S35      eTR                  U   nT	T;   a	  TT	   U   nO[        ST	 S35      e[        U[        R                  5      (       a  UR                  5       nTT:X  a  TR                  U5        U$ U $ )NzPoint z is not found in the collectionzVector rs   )
isinstancer
   typesPointIduuidUUIDstrrY   rt   npndarraytolistadd)
r   point_ididxvecr<   rf   collection_vectorslookup_collection_namementioned_idsvector_names
       r&   input_into_vector;QdrantLocal._resolve_query_input.<locals>.input_into_vector  s     ,(?@@lDII66#&|#4L':>>1$vhZ7V%WXX nnX."44,[9#>C$w{m:%FGGc2::..**,C"&<<!%%h/
##r(   )positivenegative)r<   rv   r   vectorsparse_vectorsmultivectorsvectorssetr   VectorInputr   r   rU   NearestQuerynearestRecommendQuery	recommendr   r   DiscoverQuerydiscovertargetcontextr6   ContextPairContextQueryOrderByQueryFusionQueryRrfQuery)r$   rf   r   r   r   search_in_vector_namesparsemultir   r   pairspairr<   r   r   r   r   s    `          @@@@@r&   _resolve_query_input QdrantLocal._resolve_query_input   s    <G!7!7O))*@A
).):@S &;+=+=+I & 	 
 9 99z666!+!:!:!+!8!8!+!3!3 -0E	$++	$	$ 	$. e[5566-emm<EMT m##Q {99::''3HMH`H`,H`%l3H`,( ''3HMH`H`,H`%l3H`,(D m##= {8899$5enn6K6K$LENN! enn44d;; &&nn,,-  "&
 "D	 ''.t}}=.t}}= "&ENN". m##! {7788%/t%D%DEMM5==/E "
 "D	 ''.t}}=.t}}= "EM m## {7788 m## {6677 m## {3344m##M,,&s   2O6O;?P ??Pprefetchc                    Uc  / $ [        U[        5      (       a  [        U5      S:X  a  / $ / n[        U[        R                  5      (       aK  U/nUR                  [        UR                  [        5      (       a  UR                  OUR                  /5        O [        U[        5      (       a  [        U5      nU Vs/ s H  nUc  M  U R                  X5      PM     sn$ s  snf )Nr   )	r   r6   rX   r   Prefetchextendr   r	   _resolve_prefetch_input)r$   r   rf   
prefetchess       r&   _resolve_prefetches_input%QdrantLocal._resolve_prefetches_inputX  s    
 Ih%%#h-1*<I
h//"J%/0A0A4%H%H!!xO`O`Na (++hJ '
& DD((C&
 	
 
s   <CCc                 8   UR                   c  U$ [        U5      nU R                  UUR                   UR                  UR                  5      u  p4X1l         [        UR                  [        U5      5      Ul        U R                  UR                  U5      Ul	        U$ r*   )
r   r   r   r   r   r   filterr6   r   r   )r$   r   rf   r   r   s        r&   r   #QdrantLocal._resolve_prefetch_inputr  s     >>!OH%#88NNNN  	 
 5hootMGZ[ ::8;L;Lo^r(   c                     U R                  U5      nUb)  U R                  XX<5      u  p/[        U[        U5      5      nU R	                  XA5      nUR                  UUUUUUU=(       d    SU	U
S9	$ )Nr   )	r   r   ry   r   r   r{   r|   r}   r~   )rv   r   r   r6   r   query_points)r$   rf   r   r   r   ry   rz   r{   r|   r}   r~   r   r   r.   r<   r   s                   r&   r   QdrantLocal.query_points  s      ))/:
#'#<#<$ E 7|T-EXYL11(L&&%+;Q%% ' 

 
	
r(   requestsc                 :   U Vs/ s H  nU R                  UUR                  UR                  UR                  UR                  =(       d    SUR
                  UR                  UR                  UR                  UR                  UR                  S9PM     sn$ s  snf )N
   )rf   r   r   ry   r{   r|   r}   r~   r   r   r   )r   r   r   r   r{   r|   r}   with_vectorr   r   r   )r$   rf   r   r.   requests        r&   query_batch_pointsQdrantLocal.query_batch_points  s    ( $
 $  /mm ))$^^mm)r~~$11$00 ' 7 7mm#//   $
 	
 
s   BBgroup_by
group_sizewith_lookupc                 @   U R                  U5      nUb*  U R                  XXN5      u  nn[        U[        U5      5      nS nUbB  [	        U[
        5      (       a  U R                  U5      nOU R                  UR                  5      nUR                  UUUUUUU	U
UUUUS9$ )N)r   ry   r   r   r{   r   r   r}   r~   r   r   with_lookup_collection)rv   r   r   r6   r   r   r<   query_groups)r$   rf   r   r   r   r   ry   rz   r{   r   r}   r~   r   r   r   r.   r<   r   r   s                      r&   query_points_groupsQdrantLocal.query_points_groups  s    6 ))/:
#'#<#<$ E= 7|T-EXYL!%"+s++)-)=)=k)J&)-)=)=k>T>T)U&&&%!%%+##9 ' 
 	
r(   scroll_filterorder_byc           	      L    U R                  U5      n	U	R                  UUUUUUS9$ )N)r   r{   r   r|   r}   r~   )rv   scroll)
r$   rf   r   r{   r   r|   r}   r~   r.   r<   s
             r&   r   QdrantLocal.scroll  s>     ))/:
  '%% ! 
 	
r(   count_filterexactc                 B    U R                  U5      nUR                  US9$ )N)r   )rv   count)r$   rf   r   r   r.   r<   s         r&   r   QdrantLocal.count  s(     ))/:
\::r(   rh   facet_filterc                 D    U R                  U5      nUR                  X#US9$ )N)rh   r   r{   )rv   facet)r$   rf   rh   r   r{   r   r.   r<   s           r&   r   QdrantLocal.facet  s*     ))/:
C%PPr(   pointsupdate_filterc                 b    U R                  U5      nUR                  X#S9  U R                  5       $ Nr   )rv   upsert_default_update_resultr$   rf   r   r   r.   r<   s         r&   r   QdrantLocal.upsert&  s4     ))/:
&>**,,r(   c                 b    U R                  U5      nUR                  X#S9  U R                  5       $ r   )rv   update_vectorsr   r   s         r&   r   QdrantLocal.update_vectors1  s4     ))/:
!!&!F**,,r(   r   c                 f    U R                  U5      nUR                  X#5        U R                  5       $ r*   )rv   delete_vectorsr   )r$   rf   r   r   r.   r<   s         r&   r   QdrantLocal.delete_vectors<  s1     ))/:
!!'2**,,r(   rY   c                 H    U R                  U5      nUR                  X#U5      $ r*   )rv   retrieve)r$   rf   rY   r}   r~   r.   r<   s          r&   r   QdrantLocal.retrieveG  s'     ))/:
""3lCCr(   operation_idc                 \    [         R                  " U[        R                  R                  S9$ )N)r   status)r   UpdateResultrU   UpdateStatus	COMPLETED)clsr   s     r&   r   "QdrantLocal._default_update_resultR  s'    !!%++55
 	
r(   points_selectorc                 f    U R                  U5      nUR                  U5        U R                  5       $ r*   )rv   deleter   r$   rf   r  r.   r<   s        r&   r  QdrantLocal.deleteY  s1     ))/:
/***,,r(   payloadc                 d    U R                  U5      nUR                  X#US9  U R                  5       $ )N)r  selectorrh   )rv   set_payloadr   )r$   rf   r  r   rh   r.   r<   s          r&   r  QdrantLocal.set_payload`  s6     ))/:
wSI**,,r(   c                 b    U R                  U5      nUR                  X#S9  U R                  5       $ )N)r  r  )rv   overwrite_payloadr   )r$   rf   r  r   r.   r<   s         r&   r  QdrantLocal.overwrite_payloadl  s4     ))/:
$$W$F**,,r(   r7   c                 b    U R                  U5      nUR                  X#S9  U R                  5       $ )N)r7   r  )rv   delete_payloadr   )r$   rf   r7   r   r.   r<   s         r&   r  QdrantLocal.delete_payloadw  s4     ))/:
!!t!=**,,r(   c                 b    U R                  U5      nUR                  US9  U R                  5       $ )N)r  )rv   clear_payloadr   r	  s        r&   r  QdrantLocal.clear_payload  s4     ))/:
  / :**,,r(   update_operationsc                     U R                  U5      nUR                  U5        U R                  5       /[        U5      -  $ r*   )rv   batch_update_pointsr   rX   )r$   rf   r  r.   r<   s        r&   r  QdrantLocal.batch_update_points  s@     ))/:
&&'89++-.5F1GGGr(   change_aliases_operationsc                    U GHS  n[        U[        R                  5      (       a^  U R                  UR                  R
                  5        UR                  R
                  U R                  UR                  R                  '   M  [        U[        R                  5      (       a2  U R                  R                  UR                  R                  S 5        M  [        U[        R                  5      (       aW  UR                  R                  nUR                  R                  nU R                  R                  U5      U R                  U'   GMH  [        SU 35      e   U R!                  5         g)NzUnknown operation: T)r   rU   CreateAliasOperationrv   create_aliasrf   r    
alias_nameDeleteAliasOperationrT   delete_aliasRenameAliasOperationrename_aliasnew_alias_nameold_alias_namert   ro   )r$   r  r.   	operationnew_nameold_names         r&   update_collection_aliases%QdrantLocal.update_collection_aliases  s    3I)[%E%EFF$$Y%;%;%K%KL**:: Y33>>? I{'G'GHH  !7!7!B!BDII{'G'GHH$11@@$11@@)-)9)9()CX& #6yk!BCC 3 	

r(   c                     U R                   (       a  [        S5      e[        R                  " U R                  R                  5        VVs/ s H!  u  p4XA:X  d  M  [        R                  " UUS9PM#     snnS9$ s  snnf Nrn   )r!  rf   )r    r,   ra   r   CollectionsAliasesResponser    rS   rU   AliasDescription)r$   rf   r.   r!  names        r&   get_collection_aliases"QdrantLocal.get_collection_aliases  sy     ;;^__// )-(:(:(<
 )=$J*,,)$( )=	
 		
s   
A8
A8
c                     U R                   (       a  [        S5      e[        R                  " U R                  R                  5        VVs/ s H  u  p#[        R                  " UUS9PM     snnS9$ s  snnf r.  r/  )r$   r.   r!  r2  s       r&   get_aliasesQdrantLocal.get_aliases  so    ;;^__// )-(:(:(<
 )=$J	 ,,)$( )=
 	
s   
!A1
c           
          U R                   (       a  [        S5      e[        R                  " U R                  R                  5        VVs/ s H  u  p#[        R                  " US9PM     snnS9$ s  snnf )Nrn   )r2  )r   )r,   ra   r   CollectionsResponser   rS   rU   CollectionDescription)r$   r.   r2  _s       r&   get_collectionsQdrantLocal.get_collections  sf    ;;^__((  $//5577GD 11t<7
 	
s   
 A0
c                 D    U R                  U5      nUR                  5       $ r*   )rv   info)r$   rf   r.   r<   s       r&   get_collectionQdrantLocal.get_collection  s    ))/:
  r(   c                 H     U R                  U5        g! [         a     gf = f)NTF)rv   rt   r$   rf   r.   s      r&   collection_existsQdrantLocal.collection_exists  s*    	  1 		s    
!!sparse_vectors_configmetadatac                 b   U R                  U5      nSnUb,  UR                  5        H  u  pxUR                  Xx5        M     SnUbY  UR                  R                  b&  UR                  R                  R                  U5        O[        U5      UR                  l        SnU R                  5         U$ )NFT)rv   rS   update_sparse_vectors_configri   rG  updater   ro   )	r$   rf   rF  rG  r.   _collectionupdatedr   vector_paramss	            r&   update_collectionQdrantLocal.update_collection  s     **?; ,.C.I.I.K*88T /LG!!**6""++228<.6x.@""+G

r(   c                 |    U R                   (       a+  [        R                  R                  U R                  SU5      $ g )Nr<   )r   rH   rI   rJ   r   ru   s     r&   rW   QdrantLocal._collection_path  s'    ??77<<|_MMr(   c                 j   U R                   (       a  [        S5      eU R                  R                  US 5      nAU R                  R                  5        VVs0 s H  u  pEXQ:w  d  M  XE_M     snnU l        U R                  U5      nUb  [        R                  " USS9  U R                  5         gs  snnf )Nrn   T)ignore_errors)
r,   ra   r   rT   r    rS   rW   shutilrmtreero   )r$   rf   r.   rK  r!  r2  rj   s          r&   delete_collectionQdrantLocal.delete_collection  s    ;;^__&&**?DA %)LL$6$6$8
$8 
& J$8

 //@&MM/>


s   B/&B/vectors_configc           	      |   U R                   (       a  [        S5      eXR                  ;   a  [        SU S35      eU R	                  U5      nUb  [
        R                  " USS9  [        [        R                  " U=(       d    0 U[        U5      S9UU R                  S9nXpR                  U'   U R                  5         g)Nrn   rr   z already existsTr@   )r   r   rG  )r   r   )r,   ra   r   rt   rW   rH   rM   r   rU   rV   r   r   ro   )r$   rf   rX  rF  rG  r.   rj   r<   s           r&   create_collectionQdrantLocal.create_collection  s     ;;^__...{?*;?KLL//@&KK$7$((&,"4!(+
 %,0,P,P

 -7)

r(   c                 D    U R                  U5        U R                  XX4S9$ )N)rG  )rV  rZ  )r$   rf   rX  rF  rG  r.   s         r&   recreate_collectionQdrantLocal.recreate_collection*  s0     	/%%-B & 
 	
r(   c                 $    U R                  XUS9  g r   )_upload_points)r$   rf   r   r   r.   s        r&   upload_pointsQdrantLocal.upload_points7  s     	O=Qr(   c                     U R                  U5      nUR                  U Vs/ s HI  n[        R                  " UR                  UR
                  =(       d    0 UR                  =(       d    0 S9PMK     snUS9  g s  snf )Nidr   r  r   )rv   r   rU   PointStructre  r   r  )r$   rf   r   r   r<   points         r&   r`  QdrantLocal._upload_pointsA  s|     ))/:
 $ $E ''xx <<-2!MM/R
 $ ( 	 
	
s   AA8c                 P   S[         [        S S 4   4S jnU R                  U5      n[        U[        5      (       a  [        S UR                  5        5       5      (       a  [        [        UR                  5        V	s/ s H  oR                  S   PM     sn	5      5      S:X  d   S5       e[        [        UR                  5       5      5      R                  S   n
[        U
5       VVs/ s H7  nUR                  5        Vs0 s H  oX,   U   R                  5       _M     snPM9     nnnUR                  [!        U=(       d    U" 5       [        U5      U=(       d    ["        R$                  " 0 /5      5       VVVs/ s H  u  pn[&        R(                  " [        U[*        R,                  5      (       a  [        U5      OU[        U[.        R0                  5      (       a  UR                  5       OU=(       d    0 U=(       d    0 S9PM     snnnUS9  g s  sn	f s  snf s  snnf s  snnnf )	Nr   c               3   :   #     [        [        5       5      v   M  7fr*   )r   r   rG   r(   r&   uuid_generator5QdrantLocal.upload_collection.<locals>.uuid_generator^  s     %'l" s   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr*   )r   r   r   ).0vs     r&   	<genexpr>0QdrantLocal.upload_collection.<locals>.<genexpr>c  s      ,aP`1Z2::-F-FP`s   ')r      z8Each named vector should have the same number of vectorsrd  r   )r   r   rv   r   dictanyr4   rX   r   shapenextiterranger7   r   r   zip	itertoolscyclerU   rf  r   r   r   r   )r$   rf   r   r  rY   r   r.   rk  r<   arrnum_vectorsir2  r   r   s                  r&   upload_collectionQdrantLocal.upload_collectionT  s   	#	#tT/ : 	# ))/:
gt$$,aPWP^P^P`,a)a)aC1AB1A#11ABCDIJIJI tGNN$456<<Q?K {++A >E\\^L^Tw}Q'..00^L+  
 	 47+>+M4yt444/Xw ''(28TYY(G(Gs8}X/9&"**/M/MFMMOSY`^`#Mr
4 ( 	 	
 C Ms%   =H(H HH:BH!H
field_namefield_schema
field_typec                 B    [        S[        SSS9  U R                  5       $ )NiPayload indexes have no effect in the local Qdrant. Please use server Qdrant if you need payload indexes.zcreate-local-payload-indexesrF   r1   r2   r   r3   r   r8   r   )r$   rf   r  r  r  r.   s         r&   create_payload_index QdrantLocal.create_payload_index  s)     	 .		
 **,,r(   c                 B    [        S[        SSS9  U R                  5       $ )Nr  zdelete-local-payload-indexesrF   r  r  )r$   rf   r  r.   s       r&   delete_payload_index QdrantLocal.delete_payload_index  s)     	 .		
 **,,r(   c                     / $ r*   rG   rC  s      r&   list_snapshotsQdrantLocal.list_snapshots  	     	r(   c                     [        S5      eNzeSnapshots are not supported in the local Qdrant. Please use server Qdrant if you need full snapshots.NotImplementedErrorrC  s      r&   create_snapshotQdrantLocal.create_snapshot  s     "s
 	
r(   snapshot_namec                     [        S5      er  r  )r$   rf   r  r.   s       r&   delete_snapshotQdrantLocal.delete_snapshot      !s
 	
r(   c                     / $ r*   rG   r$   r.   s     r&   list_full_snapshotsQdrantLocal.list_full_snapshots  s    	r(   c                     [        S5      er  r  r  s     r&   create_full_snapshot QdrantLocal.create_full_snapshot  r  r(   c                     [        S5      er  r  )r$   r  r.   s      r&   delete_full_snapshot QdrantLocal.delete_full_snapshot  r  r(   c                     [        S5      er  r  )r$   rf   r   r.   s       r&   recover_snapshotQdrantLocal.recover_snapshot  r  r(   shard_idc                     / $ r*   rG   r$   rf   r  r.   s       r&   list_shard_snapshots QdrantLocal.list_shard_snapshots  r  r(   c                     [        S5      eNz`Snapshots are not supported in the local Qdrant. Please use server Qdrant if you need snapshots.r  r  s       r&   create_shard_snapshot!QdrantLocal.create_shard_snapshot       "n
 	
r(   c                     [        S5      er  r  )r$   rf   r  r  r.   s        r&   delete_shard_snapshot!QdrantLocal.delete_shard_snapshot  r  r(   c                     [        S5      er  r  )r$   rf   r  r   r.   s        r&   recover_shard_snapshot"QdrantLocal.recover_shard_snapshot  s     "n
 	
r(   	shard_keyshards_numberreplication_factor	placementc                     [        S5      eNz]Sharding is not supported in the local Qdrant. Please use server Qdrant if you need sharding.r  )r$   rf   r  r  r  r  r.   s          r&   create_shard_keyQdrantLocal.create_shard_key  s     "k
 	
r(   c                     [        S5      er  r  )r$   rf   r  r.   s       r&   delete_shard_keyQdrantLocal.delete_shard_key  s     "k
 	
r(   c                 l    [         R                  R                  S5      n[        R                  " SUS S9$ )Nzqdrant-clientzqdrant - vector search engine)titleversioncommit)	importlibrG  r  rU   VersionInfo)r$   r  s     r&   r?  QdrantLocal.info  s2    $$,,_=&&174
 	
r(   cluster_operationc                     [        S5      e)NznCluster collection update is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  )r$   rf   r  r.   s       r&   cluster_collection_update%QdrantLocal.cluster_collection_update  s     "=
 	
r(   c                     [        S5      e)NzlCollection cluster info is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  ru   s     r&   collection_cluster_info#QdrantLocal.collection_cluster_info      !=
 	
r(   c                     [        S5      e)NzcCluster status is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  r+   s    r&   cluster_statusQdrantLocal.cluster_status	  r  r(   c                     [        S5      e)NziRecover current peer is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  r+   s    r&   recover_current_peer QdrantLocal.recover_current_peer  r  r(   peer_idc                     [        S5      e)NzeRemove peer info is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  )r$   r  r.   s      r&   remove_peerQdrantLocal.remove_peer  r  r(   )r#   r!   r    r   r   r   r   )F)r   N)NNr   NTFN)N   r   N)NNNNNr   NTFNN)NNNNNr   r  TFNNN)Nr   NNTF)NT)Nr   Fr*   )TF)r   )NN)NNN)__name__
__module____qualname____firstlineno____doc__rZ   r   boolr   propertyr,   r   r5   r"   ro   r   rv   r   
NumpyArrayr	   floattupler6   NamedVectorNamedSparseVectorFilterSearchParamsintPayloadSelectorScoredPointr   SearchMatrixOffsetsResponser   SearchMatrixPairsResponser   QueryLookupLocationr   r   r   r   r   r   QueryResponser   QueryRequestr   SparseVectorDocumentImageInferenceObjectWithLookupInterfaceGroupsResultr   OrderByRecordr   CountResultr   FacetResponser   Pointsr  r   PointVectorsr   PointsSelectorr   r   classmethodr   r  Payloadr  r  r  r  UpdateOperationr  AliasOperationsr+  r0  r3  r6  r9  r<  CollectionInfor@  rD  r   SparseVectorParamsrN  rW   rV  VectorParamsrZ  r]  r   rf  ra  r`  rs  VectorStructr  PayloadSchemaTyper  r  SnapshotDescriptionr  r  r  r  r  r  r  r  r  r  r  ShardKeyr  r  r  r?  ClusterOperationsr  CollectionClusterInfor  ClusterStatusr  r  r  __static_attributes____classcell__)r%   s   @r&   r   r   #   s    "# #t #X\ # #$   c d 0:x*Ds D D$ -137!EI-2(,

 &&
5/
T%[ 
!" 

 
!
!	"
 llT)
 ))D0
 
 d

 Xc]*U-B-BB
 Xc]*
 
 
  
e	 !
> -1 

 llT)
 	

 
 Tz
 
 
	*	*
" -1 

 llT)
 	

 
 Tz
 
 
	(	(
e$e$ {{T!e$ Tz	e$
 ))D0e$ 
u{{C..	/e$N
5>>*U^^;dB
 
 
enn		
49<	0 %) AE,037!EI-2(,37$
$
 {{T!$
 Tz	$

 ..4#77$>$
 llT)$
 ))D0$
 $
 d
$
 Xc]*U-B-BB$
 Xc]*$
 $
 ))D0$
 $
 
		$
L

 5--.
 	

 
e!!	"
H  AE,037EI-2(,8<3715
5
 5
 }}
u+
tE{
 

 ++	
 

 .. ++ 

  		5
 Tz5
 ..4#77$>5
  llT)!5
" ))D0#5
$ %5
& '5
( Xc]*U-B-BB)5
* Xc]*+5
, -5
. ..5/5
0 ))D015
2 35
4 
		55
t .2)-'+EI-2

 ||d*
 	

 --$&
 $
 Xc]*U-B-BB
 Xc]*
 
 
tELL!5==4#77	8
0 -1	;; llT); 	;
 ; 
		; -1
Q
Q 
Q llT)	
Q
 
Q 
Q 
Q 
		
Q  .2		-	- 	- ||d*		-
 	- 
			- .2		-	- ++,	- ||d*		-
 	- 
			-	-	- #	- $$		-
 	- 
			- FJ-2	D	D emm$	D Xc]*U-B-BB		D
 Xc]*	D 	D 
ell		D 
# 
e>P>P 
 
-"-5:5I5I-UX-			- 
-
- 
- $$	
-
 4Z
- 
- 
		
-	-	- 	- $$		-
 	- 
			-	-	- sm	- $$		-
 	- 
			--"-5:5I5I-UX-			-HH $E$9$9:H 	H
 
e  	!H)1%2G2G)HTW	(
"
.1
		)	)
"
C 
E,L,L 
	
 	
0I0I 	
!c !S !UEYEY !    PT)-	  'sE,D,D'DEL --$&	
  
0 d
    ( X\OS)- **WS%:L:L5L-MMPTT  'sE,D,D'DEL	
 --$&  
D X\OS)-

 **WS%:L:L5L-MMPTT
  'sE,D,D'DEL	

 --$&
 
 

" .2	RR **+R ||d*	R
 R 
R .2	

 **U\\9:
 ||d*	

 

. 48.2-1)
)
 c5+++,u/?/??(5K]K]B^^)
 $sCx.)D0	)

 emm$t+)
 ||d*)
 )
 
)
^ 8<59-- - --4	-
 ++d2- - 
		- 	-"	-03	-?B	-				-".1	e''	(

"
.1
		"	"T	)

s 
3 
RU 
Z^ 

C D9R9R4S 
S 
U5N5N 


# 
 
 


 
s 
c 
VZ 

".1=@	e''	(

"
.1
=@
		"	"T	)

"
.1
BE
QT
	
	
	
 	
 		

 	
 
	
 %))-&*

 >>
 Tz	

  $J
 9t#
 
 



 >>
 	

 


e'' 
	
	
 !22	
 		

 
	

s 
u?Z?Z 

 3 3 

d 

3 
# 
$ 
 
r(   r   )(importlib.metadatar  rz  rP   rH   rT  r   copyr   ior   typingr   r   r   r   r	   r
   r   numpyr   $qdrant_client.common.client_warningsr   r   qdrant_client._pydantic_compatr   qdrant_client.client_baser   qdrant_client.conversionsr   r   qdrant_client.httpr   rU   $qdrant_client.local.local_collectionr   r   r   rK   r   rG   r(   r&   <module>r     s^       	        P 2 0 ; 4  ! v
* v
r(   