
    <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)AsyncQdrantBase)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$ )AsyncQdrantLocal%   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      `/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/local/async_qdrant_local.pyr   AsyncQdrantLocal.__init__2   sN     	/N, "j079')15

"    c                     U R                   $ N)r#   r$   s    r&   closedAsyncQdrantLocal.closedD   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7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   AsyncQdrantLocal.closeH   s     **113J%  "jkopt  qA  qA  qF  qF  qH  lI  kJ  K( 	 4	+T5E5E5L5L"""4#3#34  &&(	 6M+
  		s+   A1C(4A!C C(
C%"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"   AsyncQdrantLocal._load\   s   #1 GGLL0BC	ww~~i((KK5i%

2"#EFG &% i%yy|484G4M4M4O0O7#T2  8(99HKHF&*&;&;O&LO!0'8<8\8\"J
 9C$$_5:>>*T-F-FF$[\`\u\uvw[x  yN  O^  N_  _j  kn  oy  o}  o}  k~  j  c  d%0'( 5P"  $I' &( dmmW=ww~~n--KK5nc*a( +5	  %%//+2G2G2T2TTA &% &%. +* %%33 	!$--  1h  i 	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AsyncQdrantLocal._save   s    ;;^__GGLL0BC	)S!QGG

 BFAQAQAWAWAY(AY = ,WZ5F5F-GGAY( $(<<
 "!(	 "!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 AsyncQdrantLocal._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   AsyncQdrantLocal.search   sA    " ))/:
  %%%%+ ! 
 	
r(   sampleusingc                 L   #    U R                  U5      nUR                  X#XES9$ 7fN)ry   r{   r   r   )rv   search_matrix_offsetsr$   rf   ry   r{   r   r   r.   r<   s           r&   r   &AsyncQdrantLocal.search_matrix_offsets   s4      ))/:
//%6 0 
 	
   "$c                 L   #    U R                  U5      nUR                  X#XES9$ 7fr   )rv   search_matrix_pairsr   s           r&   r   $AsyncQdrantLocal.search_matrix_pairs   s4      ))/:
--%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@AsyncQdrantLocal._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%AsyncQdrantLocal._resolve_query_input   s    <G!7!7O))*@A
).):@S &;+=+=+I & 	
 
 9 99z666!+!:!:!+!8!8!+!3!3,/E	$E,=,= 	$%BSBS 	$ 	$( e[5566-emm<EMN }%%M {99::''3HMH`H`,H`%l3H`,( ''3HMH`H`,H`%l3H`,(@ }%%; {8899$5enn6K6K$LENN! enn44d;; &&nn,,-  "&
 "D	 ''.t}}=.t}}= "&ENN", }%% {7788%/t%D%DEMM5==/E "
 "D	 ''.t}}=.t}}= "EM }%% {7788
 }%%	 {6677 }%% {3344}%%I,,&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*AsyncQdrantLocal._resolve_prefetches_input<  s     Ih%%#h-1*<I
h//"J%/0A0A4%H%H!!xO`O`Na (++hJ '
& DD((C&
 	
 
s   <CCc                 6   UR                   c  U$ [        U5      nU R                  X!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   (AsyncQdrantLocal._resolve_prefetch_inputQ  s     >>!OH%!%!:!:^^X^^X=Q=Q"
 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	$ 7f)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   AsyncQdrantLocal.query_points_  s       ))/:
%)%>%>&"U 7|T-EXYL11(L&&%+;Q%% ' 

 
	
s   A/A1requestsc                 V  #    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I S h  vN PM     sn$  Ns  snf 7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#AsyncQdrantLocal.query_batch_points  s     " $
 $ ## /mm ))$^^mm)r~~$11$00 ' 7 7mm#// $    $
 	

s)   B)BB$B"
B$B)"B$$B)group_by
group_sizewith_lookupc                 H  #    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$ 7f)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$AsyncQdrantLocal.query_points_groups  s     6 ))/:
%)%>%>&"UM 7|T-EXYL!%"+s++)-)=)=k)J&)-)=)=k>T>T)U&&&%!%%+##9 ' 
 	
s   B B"scroll_filterorder_byc           	      T   #    U R                  U5      n	U	R                  UUUUUUS9$ 7f)N)r   r{   r   r|   r}   r~   )rv   scroll)
r$   rf   r   r{   r   r|   r}   r~   r.   r<   s
             r&   r   AsyncQdrantLocal.scroll  sA      ))/:
  '%% ! 
 	
s   &(count_filterexactc                 J   #    U R                  U5      nUR                  US9$ 7f)N)r   )rv   count)r$   rf   r   r   r.   r<   s         r&   r   AsyncQdrantLocal.count  s+      ))/:
\::   !#rh   facet_filterc                 L   #    U R                  U5      nUR                  X#US9$ 7f)N)rh   r   r{   )rv   facet)r$   rf   rh   r   r{   r   r.   r<   s           r&   r   AsyncQdrantLocal.facet  s-      ))/:
C%PPr   pointsupdate_filterc                 j   #    U R                  U5      nUR                  X#S9  U R                  5       $ 7fNr   )rv   upsert_default_update_resultr$   rf   r   r   r.   r<   s         r&   r   AsyncQdrantLocal.upsert  s7      ))/:
&>**,,   13c                 j   #    U R                  U5      nUR                  X#S9  U R                  5       $ 7fr   )rv   update_vectorsr   r   s         r&   r   AsyncQdrantLocal.update_vectors  s7      ))/:
!!&!F**,,r   r   c                 n   #    U R                  U5      nUR                  X#5        U R                  5       $ 7fr*   )rv   delete_vectorsr   )r$   rf   r   r   r.   r<   s         r&   r   AsyncQdrantLocal.delete_vectors  s4      ))/:
!!'2**,,   35rY   c                 P   #    U R                  U5      nUR                  X#U5      $ 7fr*   )rv   retrieve)r$   rf   rY   r}   r~   r.   r<   s          r&   r   AsyncQdrantLocal.retrieve  s*      ))/:
""3lCCs   $&operation_idc                 \    [         R                  " U[        R                  R                  S9$ )N)r  status)r   UpdateResultrU   UpdateStatus	COMPLETED)clsr  s     r&   r   'AsyncQdrantLocal._default_update_result#  s&    !!%k.F.F.P.P
 	
r(   points_selectorc                 n   #    U R                  U5      nUR                  U5        U R                  5       $ 7fr*   )rv   deleter   r$   rf   r
  r.   r<   s        r&   r  AsyncQdrantLocal.delete)  s4      ))/:
/***,,r   payloadc                 l   #    U R                  U5      nUR                  X#US9  U R                  5       $ 7f)N)r  selectorrh   )rv   set_payloadr   )r$   rf   r  r   rh   r.   r<   s          r&   r  AsyncQdrantLocal.set_payload0  s9      ))/:
wSI**,,s   24c                 j   #    U R                  U5      nUR                  X#S9  U R                  5       $ 7f)N)r  r  )rv   overwrite_payloadr   )r$   rf   r  r   r.   r<   s         r&   r  "AsyncQdrantLocal.overwrite_payload<  s7      ))/:
$$W$F**,,r   r7   c                 j   #    U R                  U5      nUR                  X#S9  U R                  5       $ 7f)N)r7   r  )rv   delete_payloadr   )r$   rf   r7   r   r.   r<   s         r&   r  AsyncQdrantLocal.delete_payloadG  s7      ))/:
!!t!=**,,r   c                 j   #    U R                  U5      nUR                  US9  U R                  5       $ 7f)N)r  )rv   clear_payloadr   r  s        r&   r  AsyncQdrantLocal.clear_payloadR  s7      ))/:
  / :**,,r   update_operationsc                    #    U R                  U5      nUR                  U5        U R                  5       /[        U5      -  $ 7fr*   )rv   batch_update_pointsr   rX   )r$   rf   r  r.   r<   s        r&   r  $AsyncQdrantLocal.batch_update_pointsY  sC      ))/:
&&'89++-.5F1GGGs   A A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7f)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*AsyncQdrantLocal.update_collection_aliasesc  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 	

s   E,E.c                   #    U R                   (       a  [        S5      e[        R                  " U R                  R                  5        VVs/ s H   u  p4XA:X  d  M  [        R                  " X4S9PM"     snnS9$ s  snnf 7fNrn   )r%  rf   )r    r,   ra   r   CollectionsAliasesResponser    rS   rU   AliasDescription)r$   rf   r.   r%  names        r&   get_collection_aliases'AsyncQdrantLocal.get_collection_aliasesw  ss      ;;^__// +/,,*<*<*>*>&Z* Z,,
Y*>
 	
s   A
A?A9
A9
3A?c                    #    U R                   (       a  [        S5      e[        R                  " U R                  R                  5        VVs/ s H  u  p#[        R                  " X#S9PM     snnS9$ s  snnf 7fr2  r3  )r$   r.   r%  r6  s       r&   get_aliasesAsyncQdrantLocal.get_aliases  sh     ;;^__// +/,,*<*<*>*>&Z ,,
Y*>
 	
   A
A8 A2
,A8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 7f)Nrn   )r6  )r   )r,   ra   r   CollectionsResponser   rS   rU   CollectionDescription)r$   r.   r6  _s       r&   get_collections AsyncQdrantLocal.get_collections  si     ;;^__(( "&!1!1!7!7!9!9IT 11t<!9
 	
r<  c                 L   #    U R                  U5      nUR                  5       $ 7fr*   )rv   info)r$   rf   r.   r<   s       r&   get_collectionAsyncQdrantLocal.get_collection  s"     ))/:
  r   c                 P   #     U R                  U5        g! [         a     gf = f7f)NTF)rv   rt   r$   rf   r.   s      r&   collection_exists"AsyncQdrantLocal.collection_exists  s,     	  1 		s   & &
#&#&sparse_vectors_configmetadatac                 j  #    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$ 7f)NFT)rv   rS   update_sparse_vectors_configri   rL  updater   ro   )	r$   rf   rK  rL  r.   _collectionupdatedr   vector_paramss	            r&   update_collection"AsyncQdrantLocal.update_collection  s      **?; ,.C.I.I.K*88T /LG!!**6""++228<.6x.@""+G

s   B1B3c                 |    U R                   (       a+  [        R                  R                  U R                  SU5      $ g )Nr<   )r   rH   rI   rJ   r   ru   s     r&   rW   !AsyncQdrantLocal._collection_path  s'    ??77<<|_MMr(   c                 r  #    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 7f)Nrn   T)ignore_errors)
r,   ra   r   rT   r    rS   rW   shutilrmtreero   )r$   rf   r.   rP  r%  r6  rj   s          r&   delete_collection"AsyncQdrantLocal.delete_collection  s     ;;^__&&**?DA '+ll&8&8&:
&:"& J&:

 //@&MM/>


s   AB7B1(B1.A	B7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7f)Nrn   rr   z already existsTr@   )r   r   rL  )r   r   )r,   ra   r   rt   rW   rH   rM   r   rU   rV   r   r   ro   )r$   rf   r]  rK  rL  r.   rj   r<   s           r&   create_collection"AsyncQdrantLocal.create_collection  s      ;;^__...{?*;?KLL//@&KK$7$((&,"4!(+
 %,0,P,P

 -7)

s   B>C c                 t   #    U R                  U5      I S h  vN   U R                  XX4S9I S h  vN $  N N7f)N)rL  )r[  r_  )r$   rf   r]  rK  rL  r.   s         r&   recreate_collection$AsyncQdrantLocal.recreate_collection  sH      $$_555++-B , 
 
 	
 	6
s   848688c                 $    U R                  XUS9  g r   )_upload_points)r$   rf   r   r   r.   s        r&   upload_pointsAsyncQdrantLocal.upload_points  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   PointStructrj  r   r  )r$   rf   r   r   r<   points         r&   re  AsyncQdrantLocal._upload_points  s{     ))/:

 $	 $E ''xx(:EMMDWUW $	 ( 	 	
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_generator:AsyncQdrantLocal.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>5AsyncQdrantLocal.upload_collection.<locals>.<genexpr>!  s      A0@1Z2::&&0@s   ')r      z8Each named vector should have the same number of vectorsri  r   )r   r   rv   r   dictanyr4   rX   r   shapenextiterranger7   r   r   zip	itertoolscyclerU   rk  r   r   r   r   )r$   rf   r   r  rY   r   r.   rp  r<   arrnum_vectorsir6  r   r   s                  r&   upload_collection"AsyncQdrantLocal.upload_collection  s   	#	#tT/ : 	# ))/:
gt$$A0@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+>+T']G<\yXZW[G\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                 J   #    [        S[        SSS9  U R                  5       $ 7f)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%AsyncQdrantLocal.create_payload_index9  s,      	 .		
 **,,r   c                 J   #    [        S[        SSS9  U R                  5       $ 7f)Nr  zdelete-local-payload-indexesrF   r  r  )r$   rf   r  r.   s       r&   delete_payload_index%AsyncQdrantLocal.delete_payload_indexI  s,      	 .		
 **,,r   c                    #    / $ 7fr*   rG   rH  s      r&   list_snapshotsAsyncQdrantLocal.list_snapshotsT        	   c                     #    [        S5      e7fNzeSnapshots are not supported in the local Qdrant. Please use server Qdrant if you need full snapshots.NotImplementedErrorrH  s      r&   create_snapshot AsyncQdrantLocal.create_snapshotY        "s
 	
   snapshot_namec                     #    [        S5      e7fr  r  )r$   rf   r  r.   s       r&   delete_snapshot AsyncQdrantLocal.delete_snapshot`  r  r  c                    #    / $ 7fr*   rG   r$   r.   s     r&   list_full_snapshots$AsyncQdrantLocal.list_full_snapshotsg  s
     	r  c                     #    [        S5      e7fr  r  r  s     r&   create_full_snapshot%AsyncQdrantLocal.create_full_snapshotj       !s
 	
r  c                     #    [        S5      e7fr  r  )r$   r  r.   s      r&   delete_full_snapshot%AsyncQdrantLocal.delete_full_snapshoto  r  r  c                     #    [        S5      e7fr  r  )r$   rf   r   r.   s       r&   recover_snapshot!AsyncQdrantLocal.recover_snapshott  r  r  shard_idc                    #    / $ 7fr*   rG   r$   rf   r  r.   s       r&   list_shard_snapshots%AsyncQdrantLocal.list_shard_snapshotsy  r  r  c                     #    [        S5      e7fNz`Snapshots are not supported in the local Qdrant. Please use server Qdrant if you need snapshots.r  r  s       r&   create_shard_snapshot&AsyncQdrantLocal.create_shard_snapshot~        "n
 	
r  c                     #    [        S5      e7fr  r  )r$   rf   r  r  r.   s        r&   delete_shard_snapshot&AsyncQdrantLocal.delete_shard_snapshot  r  r  c                     #    [        S5      e7fr  r  )r$   rf   r  r   r.   s        r&   recover_shard_snapshot'AsyncQdrantLocal.recover_shard_snapshot  r  r  	shard_keyshards_numberreplication_factor	placementc                     #    [        S5      e7f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!AsyncQdrantLocal.create_shard_key  s      "k
 	
r  c                     #    [        S5      e7fr  r  )r$   rf   r  r.   s       r&   delete_shard_key!AsyncQdrantLocal.delete_shard_key  s      "k
 	
r  c                 t   #    [         R                  R                  S5      n[        R                  " SUS S9$ 7f)Nzqdrant-clientzqdrant - vector search engine)titleversioncommit)	importlibrL  r  rU   VersionInfo)r$   r  s     r&   rD  AsyncQdrantLocal.info  s5     $$,,_=&&174
 	
s   68cluster_operationc                     #    [        S5      e7f)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*AsyncQdrantLocal.cluster_collection_update  s      "|
 	
r  c                     #    [        S5      e7f)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(AsyncQdrantLocal.collection_cluster_info  s     !z
 	
r  c                     #    [        S5      e7f)NzcCluster status is not supported in the local Qdrant. Please use server Qdrant if you need a clusterr  r+   s    r&   cluster_statusAsyncQdrantLocal.cluster_status  s     !q
 	
r  c                     #    [        S5      e7f)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%AsyncQdrantLocal.recover_current_peer  s     !w
 	
r  peer_idc                     #    [        S5      e7f)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AsyncQdrantLocal.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/  r4  r7  r:  r>  rA  CollectionInforE  rI  r   SparseVectorParamsrS  rW   r[  VectorParamsr_  rb  r   rk  rf  re  rx  VectorStructr  PayloadSchemaTyper  r  SnapshotDescriptionr  r  r  r  r  r  r  r  r  r  r  ShardKeyr  r  r  rD  ClusterOperationsr  CollectionClusterInfor  ClusterStatusr  r  r  __static_attributes____classcell__)r%   s   @r&   r   r   %   s    !# #t #X\ # #$   C D (.`&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
 
 
	(	(
Z&Z& {{T!Z& Tz	Z&
 ))D0Z& 
u{{C..	/Z&x
 05>>ADH
[^
	enn	
*9<	" %) AE,037!EI-2(,37!
!
 {{T!!
 Tz	!

 ..4#77$>!
 llT)!
 ))D0!
 !
 d
!
 Xc]*U-B-BB!
 Xc]*!
 !
 ))D0!
 !
 
		!
F
"
.6u7I7I.J
VY
	e!!	"
B  AE,037EI-2(,8<3714
4
 4
 }}
u+
tE{
 

 ++	
 

 .. ++ 

  		4
 Tz4
 ..4#77$>4
  llT)!4
" ))D0#4
$ %4
& '4
( Xc]*U-B-BB)4
* Xc]*+4
, -4
. ..5/4
0 ))D014
2 34
4 
		54
r .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
		)	)

# 
%2R2R 

c 
e6O6O 
!C !3 !5K_K_ !s c d  PT)-	  'sE,D,D'DEL --$&	
  
, d
 s c d & X\OS)- **WS%:L:L5L-MMPTT  'sE,D,D'DEL	
 --$&  
> 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*%
 %
 
%
V 8<59-- - --4	-
 ++d2- - 
		- 	-"	-03	-?B	-				-".1	e''	(

"
.1
		"	"T	)

"
36
BE
	
# $u?X?X:Y 
3 
5;T;T 


 
s 
t 


c 
S 
TW 
\` 

".1=@	e''	(

"
.1
=@
		"	"T	)

"
.1
BE
QT
	

"
.1
=@
LO
	
 %))-&*

 >>
 Tz	

  $J
 9t#
 
 


"
/4~~
IL
	

E-- 

"
7<7N7N
Z]
	

S 
UE`E` 


e&9&9 


D 


 
 
 
 
r(   r   )(importlib.metadatar  r  rP   rH   rY  r   copyr   ior   typingr   r   r   r   r	   r
   r   numpyr   $qdrant_client.common.client_warningsr   r   qdrant_client._pydantic_compatr   qdrant_client.async_client_baser   qdrant_client.conversionsr   r   qdrant_client.httpr   rU   $qdrant_client.local.local_collectionr   r   r   rK   r   rG   r(   r&   <module>r$     sZ       	     H H   P 2 ; ; 4  ! a
 a
r(   