
    sOiƺ                    v   d dl Zd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlZd dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dl m!Z! d dl"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=  G d de#      Z>y)    N)get_all_start_methods)Thread)Any	AwaitableCallableIterableMappingSequenceTypeget_args)Compression)Url	parse_url)urljoin)show_warningshow_warning_once)grpc)	construct)
BearerAuth)
QdrantBase)is_compatibleget_server_version)get_channel)common_types)get_args_subscribed)
GrpcToRest
RestToGrpc!grpc_payload_schema_to_field_type)	ApiClientSyncApismodels)ParallelWorkerPool)GrpcBatchUploader)RestBatchUploader)BaseUploaderc            '       !    e Zd ZdZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddedz  dedz  dedededz  d	edz  d
edz  dedz  dedz  deee	f   dz  de
g ef   e
g ee   f   z  dz  dededz  deeef   dz  de	f fdZededeee	f   de	deddf
d       Zedefd       Zddedz  de	ddfdZededeedz  eedz  edz  f   fd       ZdefdZddZddZdd Zdd!Zdd"Zdefd#Zedej:                  fd$       Zedej>                  fd%       Z edejB                  fd&       Z"edejF                  fd'       Z$ede%e&   fd(       Z'ede%e&   fd)       Z(	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd*ed+e)jT                  e+e   z  e+e+e      z  e)jX                  z  e)jZ                  z  e)j\                  z  e)j^                  z  e)j`                  z  e)jb                  z  dz  d,edz  d-e)jd                  e+e)jd                     z  dz  d.e)jf                  dz  d/e)jh                  dz  d0ed1edz  d2ee5e   z  e)jl                  z  d3ee5e   z  d4edz  d5e)jn                  dz  d6e)jp                  dz  d7e)jr                  dz  dedz  de	de)jt                  f"d8Z;	 	 dd*ed9e5e)jx                     d6e)jp                  dz  dedz  de	de+e)jt                     fd:Z=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd*ed;ed+e)jT                  e+e   z  e+e+e      z  e)jX                  z  e)jZ                  z  e)j\                  z  e)j^                  z  e)j`                  z  e)jb                  z  dz  d,edz  d-e)jd                  e+e)jd                     z  dz  d.e)jf                  dz  d/e)jh                  dz  d0ed<ed2ee5e   z  e)jl                  z  d3ee5e   z  d4edz  d=e)j|                  dz  d5e)jn                  dz  d6e)jp                  dz  d7e)jr                  dz  dedz  de	de)j~                  f&d>Z@	 	 	 	 	 	 	 dd*ed.e)jf                  dz  d0ed?ed,edz  d6e)jp                  dz  d7e)jr                  dz  dedz  de	de)j                  fd@ZB	 	 	 	 	 	 	 dd*ed.e)jf                  dz  d0ed?ed,edz  d6e)jp                  dz  d7e)jr                  dz  dedz  de	de)j                  fdAZD	 	 	 	 	 	 	 	 	 dd*edBe)jf                  dz  d0edCe)j                  dz  d1e)jT                  dz  d2ee5e   z  e)jl                  z  d3ee5e   z  d6e)jp                  dz  d7e)jr                  dz  dedz  de	dee+e)j                     e)jT                  dz  f   fdDZG	 	 	 	 	 dd*edEe)jf                  dz  dFed7e)jr                  dz  dedz  d6e)jp                  dz  de	de)j                  fdGZI	 	 	 	 	 	 dd*edHedIe)jf                  dz  d0edFededz  d6e)jp                  dz  d7e)jr                  dz  de	de)j                  fdJZK	 	 	 	 	 	 dd*edKe)j                  dLedMe)j                  dz  d7e)jr                  dz  dNe)jf                  dz  dOe)j                  dz  dedz  de	de)j                  fdPZP	 	 	 	 	 dd*edKe5e)j                     dLedMe)j                  dz  d7e)jr                  dz  dNe)jf                  dz  dedz  de	de)j                  fdQZR	 	 	 	 dd*edRe5e   dKe)j                  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fdSZT	 	 	 	 	 dd*edTe5e)jT                     d2ee5e   z  e)jl                  z  d3ee5e   z  d6e)jp                  dz  d7e)jr                  dz  dedz  de	de+e)j                     fdUZUeVdKe)j                  deej                  ejr                  dz  f   fdV       ZWeVdKe)j                  d7e)jr                  dz  deXj                  fdW       ZYeVdXej                  de+ejT                     fdY       ZZeVdKe)j                  dee+eXj                     dz  eXjf                  dz  f   fdZ       Z\	 	 	 	 dd*edXe)j                  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fd[Z]	 	 	 	 	 dd*ed\e)j                  dKe)j                  dHedz  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fd]Z_	 	 	 	 dd*ed\e)j                  dKe)j                  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fd^Z`	 	 	 	 dd*ed_e5e   dKe)j                  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fd`Za	 	 	 	 dd*edXe)j                  dLedMe)j                  dz  d7e)jr                  dz  dedz  de	de)j                  fdaZb	 	 	 dd*edbe5e)j                     dLedMe)j                  dz  dedz  de	de+e)j                     fdcZd	 ddde5e)j                     dedz  de	defdeZfd*ede	de)j                  fdfZhde	de)j                  fdgZide	de)j                  fdhZkd*ede	de)j                  fdiZmd*ede	defdjZn	 	 	 	 	 	 	 	 	 dd*edke)j                  dz  dle)j                  dz  dme)j                  dz  dne)j                  dz  doe)j                  dz  dedz  dpetee)j                  f   dz  dqe)j                  dz  dre)j                  dz  de	defdsZw	 dd*ededz  de	defdtZx	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd*edme)j                  etee)j                  f   z  dz  duedz  dvedz  dwedz  dxedz  dne)j                  dz  dke)j                  dz  dye)j                  dz  doe)j                  dz  dedz  dpetee)j                  f   dz  dze)j                  dz  dqe)j                  dz  dre)j                  dz  de	def"d{Z}	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd*edme)j                  etee)j                  f   z  dz  duedz  dvedz  dwedz  dxedz  dne)j                  dz  dke)j                  dz  dye)j                  dz  doe)j                  dz  dedz  dpetee)j                  f   dz  dze)j                  dz  dqe)j                  dz  dre)j                  dz  de	def"d|Z~edee   fd}       Z	 	 	 	 	 	 dd~ed*ededededz  dLed7e)jr                  dz  dNe)jf                  dz  dOe)j                  dz  ddfdZ	 	 	 	 	 	 	 	 dd*edKee)j                     dedededz  dedLed7e)jr                  dz  dNe)jf                  dz  dOe)j                  dz  de	ddfdZ	 	 	 	 	 	 	 	 	 	 dd*edReee)j\                  f   e)j\                  z  ee)j                     z  d\eee	e	f      dz  dTee)jT                     dz  dedededz  dedLed7e)jr                  dz  dNe)jf                  dz  dOe)j                  dz  de	ddfdZ	 	 	 	 	 dd*edede)j                  dz  de)j                  dz  dLedMe)j                  dz  dedz  de	de)j                  fdZ	 	 	 dd*ededLedMe)j                  dz  dedz  de	de)j                  fdZd*ede	de+e)j                     fdZ	 dd*edLede	de)j                  dz  fdZ	 dd*ededLede	dedz  f
dZde	de+e)j                     fdZddLede	de)j                  fdZ	 ddedLede	dedz  fdZ	 	 	 	 dd*eded	edz  dedz  de)j$                  dz  dLede	dedz  fdZd*edede	de+e)j                     fdZ	 dd*ededLede	de)j                  dz  f
dZ	 dd*edededLede	dedz  fdZ	 	 	 	 dd*ededed	edz  dedz  de)j$                  dz  dLede	dedz  fdZ	 	 	 	 	 dd*ede)j0                  dedz  dvedz  de+e   dz  de)j2                  dz  dedz  de	defdZ	 dd*ede)j0                  dedz  de	def
dZde)j8                  fdZ	 dd*ede)j<                  dedz  de	def
dZde)j@                  fdZdefdZ	 	 ddededz  dedz  de	def
dZd*ede)jH                  fdZ	 dd*ededz  de	de)jL                  fdZd*ede	de)jP                  fdZ	 	 ddedz  dedz  de	de)jT                  fdZ xZS )QdrantRemote      Nurlport	grpc_portprefer_grpchttpsapi_keyprefixtimeouthostgrpc_optionsauth_token_providercheck_compatibility	pool_sizeheaderskwargsc                    t        !|   d4i | || _        || _        |
xs i | _        ||n|d u| _        | j
                  rdnd| _        d | _        |t        d|      }|| _        |xs d| _	        t        | j                        dkD  r&| j                  d   dk7  rd| j                   | _	        ||	t        d| d|	       |	-|	j                  d	      s|	j                  d
      rt        d      |r
|j                  d      rd| }t        |      }|j                  |j                  c| _        | _        |j$                  r%|j$                  dk(  | _        |j$                  | _        | j"                  r| j"                  n|| _        | j                  r'|j&                  rt        d| d|j&                         |j&                  r|j&                  | _	        | j                  dvr*t        d| j                         |	xs d| _        || _        |t)        j*                  |      nd }|| _        || _        |j1                  dd       }|S| j                   dv rt3        j4                  d d      }nJ| j                  >t3        j4                  | j                        }n| j                  t        d| d|       |j1                  dd      }g | _        |j1                  di       j9                         D ci c]  \  }}||
 c}}| _        |rD|j9                         D ]1  \  }}|| j:                  |<   | j6                  j=                  ||f       3 || j                  dk(  rt?        dt@        d       tC        | j6                  D cg c]
  \  }}|dk(   c}}      sd| j:                  v rtE        dt@        d       || j:                  d<   | j6                  j=                  d|f       tF        jH                  jK                  d       }tM        jN                         }d!| d"| }d#| j:                  v rtE        d$| d%       |
d&|
v rtE        d'| d%t@        d       || j:                  d#<   || j                  d&<   |j1                  d(d       }|'tQ        |tR              stU        d)tW        |             |tR        jX                  k(  rt        d*      || _-        | j"                  | j                    d+| j"                   n| j                   }| j                   d,| }t]        || j                        | _/        | j:                  |d-|| _0        ||| j`                  d<   ||| j`                  d.<   || _1        n| jd                  | _1        | j.                  E| j                  dk(  rt?        d/t@        d       tg        | j.                        } | | j`                  d0<   ti        d4d1| j^                  i| j`                  | _5        g | _6        d | _7        d | _8        d | _9        d | _:        d| _;        d | _<        d | _=        d | _>        d | _?        d| _@        |rbt        | j                  | j^                  | j:                  | j`                  j                  d0      | jb                  fd23      j                          y y c c}}w c c}}w )5Nr.   http    r   /z+Only one of (url, host) can be set. url is z
, host is zhttp://zhttps://zk`host` param is not expected to contain protocol (http:// or https://). Try to use `url` parameter instead.	localhostz//z9Prefix can be set either in `url` or in `prefix`. url is z, prefix is )r:   r.   zUnknown scheme: limits)r>   z	127.0.0.1)max_connectionsmax_keepalive_connections)r@   z>`pool_size` and `limits` are mutually exclusive. `pool_size`: z, `limit`: http2Fmetadataz,Api key is used with an insecure connection.   messagecategory
stacklevelzapi-keyz``api-key` has been passed in `headers`, but it will be overridden with `api_key` parameter valueqdrant-clientzpython-client/z python/z
User-Agentz^`User-Agent` has been passed in `headers`, but it will be overridden with the builtin value: `z`.zgrpc.primary_user_agentzD`grpc.primary_user_agent will be overridden with the builtin value: grpc_compressionzLExpected 'grpc_compression' to be of type grpc.Compression or None, but got zfgrpc.Compression.Deflate is not supported. Try grpc.Compression.Gzip or grpc.Compression.NoCompression:z://)r7   rB   r1   z8Auth token provider is used with an insecure connection.authr2   T)targetargsdaemon )Esuper__init___prefer_grpc
_grpc_port_grpc_options_https_scheme
_pool_sizemax_prefixlen
ValueError
startswithr   r2   r+   _host_portschemepathmathceil_api_key_auth_token_providerpophttpxLimits_grpc_headersitems_rest_headersappendr   UserWarninganyr   	importlibrC   versionplatformpython_version
isinstancer   	TypeErrortypeDeflate_grpc_compressionr   rest_uri
_rest_args_timeoutDEFAULT_GRPC_TIMEOUTr   r    openapi_client_grpc_channel_pool_grpc_points_client_pool_grpc_collections_client_pool_grpc_snapshots_client_pool_grpc_root_client_pool_grpc_client_next_index_aio_grpc_points_client_aio_grpc_collections_client_aio_grpc_snapshots_client_aio_grpc_root_client_closedr   _check_compatibilitygetstart)"selfr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   
parsed_urlrz   r?   rB   kvkeyvalueheader_name_client_versionrr   
user_agentrJ   addressbase_urlbearer_auth	__class__s"                                    b/volume1/homes/robertsu/coba/app/.venv/lib/python3.12/site-packages/qdrant_client/qdrant_remote.pyrR   zQdrantRemote.__init__1   s   $ 	"6"'#)/R$0egT6I"&++w6 '+ Ay)I'DO|t||q T\\!_%;t||n-DL?t/J3%zZ^Y_`aa!;tz?Z6 
 ~~k* 3%j'nJ%/__joo"DJ
  (//7:)00'+zztDJ||
 !U,z.?A  )||#44 #3DLL>!BCC,DJDJ #*"5DIIg4 	  $7!Hd+>zz77 dVWX,dooF__(  ){+fX? 
 

7E*/5zz*b/I/O/O/QR/Qtq!ad/QR%mmo
U*/""3'""))3,7 . ||v%J(  DDVDVWDV.+q[I-DVWX 2 22!&( 	 -4Dy)%%y'&:;"++33OD!002%n%5Xn=MN
4---BBLRQ
 #(A\(Q^_i^jjlm$
 ,6<(8B45 06zz:Ld/S'
;K[0Y559:J5K4LN  {222x  "226**2HTZZL$**.djjll^3wi0$,,7&*&8&85SFS(.DOOH%)1DOOI&$DM 55DM$$0||v%V(  %T%>%>?K&1DOOF#3; 4
4
oo4

 79FJ%PT*LP(DH#,-$?C$IM)EI'=A""00MM&&OO''/MM	 	 eg S S" Xs   ;Z<[
rx   rest_headersrL   returnc                    	 t         j                  j                  d      }t        | |||      }|st	        dt
        d       y t        ||      st	        d| d| dt
        d       y y # t        $ r t	        dt
        d       Y y w xY w)NrI   zFailed to obtain server version. Unable to check client-server compatibility. Set check_compatibility=False to skip version check.   rE   zQdrant client version z% is incompatible with server version z. Major versions should match and minor version difference must not exceed 1. Set check_compatibility=False to skip version check.)ro   rC   rp   r   r   rm   r   	Exception)rx   r   rL   r1   r   server_versions         r   r   z!QdrantRemote._check_compatibility  s    	&//77HN/,gVN!L( 	 #>>B4^4D E-. /^^ )  C  	H$		s   AA+ %A+ +B	B	c                     | j                   S N)r   r   s    r   closedzQdrantRemote.closed'  s    ||    
grpc_gracec                 f   t        | d      r:t        | j                        dkD  r"| j                  D ]  }	 |j                           	 | j                  j                          d| _	        y # t        $ r t        dt        d       Y Vw xY w# t        $ r t        dt        d       Y d| _	        y w xY w)Nr}   r   zKUnable to close grpc_channel. Connection was interrupted on the server siderD   rE   zNUnable to close http connection. Connection was interrupted on the server sideT)
hasattrr[   r}   closeAttributeErrorr   RuntimeWarningr|   r   r   )r   r   r8   channels       r   r   zQdrantRemote.close+  s    4-.3t7N7N3ORS3S22MMO 3	%%' ! &   m!/#$  	h' 	s#   A*B *BBB0/B0c                     t        |       }|j                  |j                  |j                  |j                  f\  }}}}||||fS r   )r   r`   r2   r+   ra   )r*   parse_resultr`   r2   r+   r0   s         r   
_parse_urlzQdrantRemote._parse_urlB  sP    %cN	&
"dF tT6))r   c                 J    | j                   | j                   S | j                  S )z
        Returns the pool size to use for GRPC connection pool.
        This method should be preferred over accessing `self._pool_size` directly as it applies the
        default value if no pool_size was provided.
        )rX   DEFAULT_GRPC_POOL_SIZEr   s    r   _get_grpc_pool_sizez QdrantRemote._get_grpc_pool_sizeM  s$     ??&??"...r   c           
         | j                   rt        d      	 g }t        | j                        dk(  rt	        | j                               D ]k  }t        | j                  | j                  | j                  | j                  | j                  | j                  | j                        }|j                  |       m || _        y y # t        $ r}t        d|       d }~ww xY w)Nz=Client was closed. Please create a new QdrantClient instance.r   )r2   r+   sslrC   optionscompressionr4   z+Error initializing the grpc connection(s): )r   RuntimeErrorr[   r}   ranger   r   r^   rT   rV   ri   rU   rw   re   rl   r   )r   channel_poolr   r   es        r   _init_grpc_channelzQdrantRemote._init_grpc_channelY  s    <<^__	RL4**+q0t779:A)!ZZ!__ KK!%!3!3 $ 2 2$($:$: -1,E,E
G !''0 ; +7'! 1"  	R!LQCPQQ	Rs   B(C 	CCCc                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   
PointsStubr~   r   r   s     r   _init_grpc_points_clientz%QdrantRemote._init_grpc_points_clientt  s?    !484K4K)
4KDOOG$4K)
% )
   Ac                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   CollectionsStubr   r   s     r   _init_grpc_collections_clientz*QdrantRemote._init_grpc_collections_clientz  sA    !9=9P9P.
9PgD  )9P.
* .
r   c                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   SnapshotsStubr   r   s     r   _init_grpc_snapshots_clientz(QdrantRemote._init_grpc_snapshots_client  sA    !7;7N7N,
7NGDw'7N,
( ,
r   c                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   
QdrantStubr   r   s     r   _init_grpc_root_clientz#QdrantRemote._init_grpc_root_client  s?    !484K4K'
4KDOOG$4K'
# '
r   c                 h    | j                   }| j                   dz   | j                         z  | _         |S )Nr;   )r   r   )r   current_indexs     r   _next_grpc_clientzQdrantRemote._next_grpc_client  s9    44((1,$$&('$ r   c                     | j                   | j                          | j                   J | j                   | j                            S )zgRPC client for collections methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )r   r   r   r   s    r   grpc_collectionszQdrantRemote.grpc_collections  sH     --5..011===11$2H2H2JKKr   c                     | j                   | j                          | j                   J | j                   | j                            S )z}gRPC client for points methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )r~   r   r   r   s    r   grpc_pointszQdrantRemote.grpc_points  sH     ((0))+,,888,,T-C-C-EFFr   c                     | j                   | j                          | j                   J | j                   | j                            S )zgRPC client for snapshots methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )r   r   r   r   s    r   grpc_snapshotszQdrantRemote.grpc_snapshots  sH     ++3,,.//;;;//0F0F0HIIr   c                     | j                   | j                          | j                   J | j                   | j                            S )z{gRPC client for info methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )r   r   r   r   s    r   	grpc_rootzQdrantRemote.grpc_root  sH     &&.'')**666**4+A+A+CDDr   c                     | j                   S ztREST Client

        Returns:
            An instance of raw REST API client, generated from OpenAPI schema
        r|   r   s    r   restzQdrantRemote.rest       """r   c                     | j                   S r   r   r   s    r   r:   zQdrantRemote.http  r   r   collection_namequeryusingprefetchquery_filtersearch_paramslimitoffsetwith_payloadwith_vectorsscore_thresholdlookup_fromconsistencyshard_key_selectorc                    | j                   r|t        j                  |      }t        |t        j
                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j
                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        t        j                              rt        j                  |	      }	t        |
t        t        j                              rt        j                   |
      }
t        |t        j"                        rt        j$                  |      }t        |t        t        j&                              rt        j(                  |      }t        |t        t        j*                              rt        j,                  |      }| j.                  j1                  t3        j4                  |||||||
|	|||||||      ||n| j6                        }|j8                  D cg c]  }t;        j<                  |       }}t	        j>                  |      S t        |t2        j                        rt;        j                  |      }t        |t2        j                        rt;        j                  |      }t        |	t2        j@                        rt;        jB                  |	      }	t        |t2        j"                        rt;        j$                  |      }t	        jD                  ||||||||||
|	|      }| jF                  jH                  jK                  ||||      }|j8                  }|J d       |S c c}w c c}w )Nmodel)r   r   r   filterr   r   r   r   paramsr   r   r   r1   r   read_consistencyr1   points)	shard_keyr   r   r   r   r   r   r   r   with_vectorr   r   )r   r   r1   query_requestzSearch returned None)&rS   r   convert_queryrs   r!   Prefetchconvert_prefetch_querylistFilterconvert_filterSearchParamsconvert_search_paramsr   WithPayloadInterfaceconvert_with_payload_interface
WithVectorconvert_with_vectorsLookupLocationconvert_lookup_locationReadConsistencyconvert_read_consistencyShardKeySelectorconvert_shard_key_selectorr   Queryr   QueryPointsrz   resultr   convert_scored_pointQueryResponseWithPayloadSelectorconvert_with_payload_selectorQueryRequestr:   
search_apiquery_points)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r8   preshitscored_pointsr   query_resultr  s                           r   r  zQdrantRemote.query_points  s:   8  "007(FOO4&==hGH(D) &% =Gq&//<ZJ55a8`aa%  
 ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"&*&6&6&<&<  $3%'!!-!-($3 +#'9%0" $+#6DMM% '= 'C* NQZZXZcZ<<SAZMX''}== ,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M"//,!#$ /()'M  99//<< /'+	 = L 3?2E2EF%='==%Mo^ Ys   )8N>,Orequestsc                    | j                   r|D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||      ||n| j                        }|j                  D cg c]C  }t        j                  |j                  D cg c]  }t!        j"                  |       c}      E c}}S | j$                  j&                  j)                  |||t        j*                  |            j                  }	|	J d       |	S c c}w c c}w c c}}w )N)r   r  r   r1   r   r   )searches)r   r   r1   query_request_batchzQuery batch returned None)rS   rs   r!   r  r   convert_query_requestr   r  r  r   
QueryBatchr   QueryBatchPointsrz   r  r
  r   r	  r:   r  query_batch_pointsQueryRequestBatch)
r   r   r  r   r1   r8   rgrpc_resr  http_ress
             r   r  zQdrantRemote.query_batch_pointsR  s     " "A "!V%8%89 44QH "   +':6;Q;Q'RS(AA+N040@0@0K0K%%$3!)%0#	 $+#6DMM 1L 1H "	 )A $$LMHHUHSJ;;C@HU )	  ;?)):N:N:a:a /'$*$<$<h$O	 ;b ;
 f  'D)DD'OI0 Vs   9E4"E>8E9
E>9E>group_by
group_sizewith_lookupc                 .   | j                   r|t        j                  |      }t        |t        j
                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j
                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |
t        t        j                              rt        j                  |
      }
t        |t        t        j                              rt        j                   |      }t        |t        j"                        rt        j$                  |      }t        |t&              rt)        j"                  |      }t        |t        j*                        rt        j,                  |      }t        |t        t        j.                              rt        j0                  |      }t        |t        t        j2                              rt        j4                  |      }| j6                  j9                  t)        j:                  di d|d|d|d|d|d|d	|
d
|d|d|d|d|	d|d|d|d|d|||n| j<                        j>                  }tA        jB                  |      S t        |t(        j                        rtA        j                  |      }t        |t(        j                        rtA        j                  |      }t        |
t(        jD                        rtA        jF                  |
      }
t        |t(        j*                        rtA        j,                  |      }t	        jH                  ||||||||||	||
||      }| jJ                  jL                  jO                  ||||      }|J d       |j>                  S c c}w )Nr   )
collectionr   r   r   r   r   r   r   r   r   r   r!  r"  r#  r   r1   r   r   r   )r   r   r   r   r   r   r   r   r!  r"  r   r   r#  r   )r   r   r1   query_groups_requestz%Query points groups API returned NonerP   )(rS   r   r   rs   r!   r   r   r   r   r   r   r   r   r   r   r   r   
WithLookupconvert_with_lookupstrr   r   r  r  r  r  r  r   QueryGroupsQueryPointGroupsrz   r  r   convert_groups_resultr  r  QueryGroupsRequestr:   r  query_points_groups)r   r   r!  r   r   r   r   r   r   r"  r   r   r   r#  r   r   r   r1   r8   r  r  r   r  s                          r   r.  z QdrantRemote.query_points_groups  s   <  "007(FOO4&==hGH(D) &% =Gq&//<ZJ55a8`aa%  
 ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'8'89(<<[I+s+"ooE+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"/3/?/?/K/K%% $3 & (	
   ". ". ) %4   &  * !, !, $  (:!" &1#& $+#6DMM) 0L 0* f+ , 33F;;,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M"55,!#$ /!%()''M"  99//CC /'%2	 D L  +T-TT+&&&ys   )8Psamplec	                 2   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||            j$                  }|J d       |S )Nr   r   r   r/  r   r   r1   r   r   r   r   r   r/  r   r   r   r   r1   search_matrix_requestz(Search matrix pairs returned None result)rS   rs   r!   r   r   r   r   r  r  r  r  r   SearchMatrixPairsr   SearchMatrixPointsrz   r   convert_search_matrix_pairsr  r|   r  search_matrix_pairsSearchMatrixRequestr   r   r   r   r/  r   r   r   r1   r8   responsesearch_matrix_results               r   r8  z QdrantRemote.search_matrix_pairs  sl    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N''99''$3'!#%0'9	 $+#6DMM : H 99(//JJlDKK0%44<HL#22==QQ+#"("<"<,##	  R  
 & 	 $/[1[[/##r   c	                 2   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||            j$                  }|J d       |S )Nr   r1  r   r2  r3  z*Search matrix offsets returned None result)rS   rs   r!   r   r   r   r   r  r  r  r  r   SearchMatrixOffsetsr   r6  rz   r   convert_search_matrix_offsetsr  r|   r  search_matrix_offsetsr9  r:  s               r   r@  z"QdrantRemote.search_matrix_offsets=  sl    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N'';;''$3'!#%0'9	 $+#6DMM < H ;;HOOLLlDKK0%44<HL#22==SS+#"("<"<,##	  T  
 & 	 $/]1]]/##r   scroll_filterorder_byc                    | j                   r(t        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |	t        t        j                              rt        j                   |	      }	t        |t        t        j"                              rt        j$                  |      }| j&                  j)                  t+        j,                  |||||||||	|

      |
|
n| j.                        }|j0                  D cg c]  }t3        j4                  |       c}|j7                  d      r t3        j8                  |j:                        fS d fS t        |t*        j<                        rt3        j8                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j>                        rt3        j@                  |      }t        |t*        jB                        rt3        jD                  |      }| jF                  jH                  jK                  ||t        jL                  |||||||	      |
      j0                  }|J d       |jN                  |j:                  fS c c}w )Nr   )
r   r   rB  r   r   r   r   r   r   r1   r   next_page_offset)r   r   rB  r   r   r   r   )r   r   scroll_requestr1   z&Scroll points API returned None result)(rS   rs   r   r!   ExtendedPointIdr   convert_extended_point_idr   r   r   r   r   r   r  r  r  r  OrderByInterfaceconvert_order_by_interfacer   Scrollr   ScrollPointsrz   r  r   convert_retrieved_pointHasFieldconvert_point_idrD  PointIdOrderByconvert_order_byr  r  r|   
points_apiscroll_pointsScrollRequestr   )r   r   rA  r   rB  r   r   r   r   r   r1   r8   r  pointscroll_results                  r   scrollzQdrantRemote.scrollu  s    &"5f6L6L"MN#==fE-7 * 9 9 N,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"($78O8O$PQ%@@J'+'7'7'>'>!!$3(%!!-!-%0'9# $+#6DMM (? (C  LO::V:%J66u=:V<< 23 ++C,@,@A    &$,,/#44V<-5 * 9 9 N(DLL1%66x@,(@(@A)GGU ##..<<$3 +#)#7#7,#!)%%1$0"4$ $ =  &   !,V.VV, '')G)GGGI Ws   $M!count_filterexactc           
      *   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||      ||n| j                        j                   }t#        j$                  |      S t        |t        j                        rt#        j
                  |      }| j&                  j(                  j+                  |t        j,                  |||      ||      j                   }	|	J d       |	S )Nr   )r   r   rY  r   r1   r   r   )r   rY  r   )r   count_requestr   r1   z!Count points returned None result)rS   rs   r!   r   r   r   r   r  r  r  r  r   Countr   CountPointsrz   r  r   convert_count_resultr|   rR  count_pointsCountRequest)
r   r   rX  rY  r   r1   r   r8   r;  count_results
             r   countzQdrantRemote.count  sh    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N''--  $3''9#%0 $+#6DMM . 
 f  228<<lDKK0%44<HL**55BB+ --#,
 $ C 	
 & 	 'L)LL'r   r   facet_filterc	                    | j                   r't        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                  D cg c]  }t'        j(                  |       c}      S t        |t        j                        rt'        j
                  |      }| j*                  j,                  j/                  |||t        j0                  |||||            j2                  }|J d       |S c c}w )Nr   )r   r   r   r   rY  r1   r   r   r   )hits)r   r   r   r   rY  )r   r   r1   facet_requestz!Facet points returned None result)rS   rs   r!   r   r   r   r   r  r  r  r  r   Facetr   FacetCountsrz   typesFacetResponsere  r   convert_facet_value_hitr|   rR  facetFacetRequestr  )r   r   r   rc  r   rY  r1   r   r   r8   r;  r  facet_results                r   rl  zQdrantRemote.facet   s    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N''--  $3'#%0'9	 $+#6DMM . H &&IQW#j88=W  lDKK0%44<HL**55;;+# --,#	 < 
 & 	 'L)LL') Xs   F;r   waitorderingupdate_filterupdate_modec	                    | j                   r]t        |t        j                        rt	        j
                  |j                  t        |j                              }
t        t        |j                              D cg c]k  }t        j                  t	        j                  |j                  |         |
|   |j                  "t	        j                  |j                  |         nd       m }}t        |t              r>|D cg c]3  }t        |t        j                        rt	        j                   |      n|5 }}t        |t        j"                        rt	        j$                  |      }t        |t'        t        j(                              rt	        j*                  |      }t        |t        j,                        rt	        j.                  |      }t        |t        j0                        rt	        j2                  |      }| j4                  j7                  t        j8                  ||||||||      | j:                        j<                  }|J d       t?        j@                  |      S t        |t        j,                        rt?        j.                  |      }t        |t              rW|D cg c]3  }t        |t        j                        rt?        j                   |      n|5 }}t        jB                  ||||      }t        |t        j                        rt        jD                  ||||      }| jF                  jH                  jK                  |||||      j<                  }|J d       |S c c}w c c}w c c}w )	N)idvectorspayloadr   )r   ro  r   rp  r   rq  r1   rr  r   Upsert returned None result)r   r   rq  rr  )batchr   rq  rr  )r   ro  point_insert_operationsrp  r1   )&rS   rs   r!   Batchr   convert_batch_vector_structru  r[   idsr   r   PointStructrG  payloadsconvert_payloadr   convert_point_structWriteOrderingconvert_write_orderingr   r  r  r   r   
UpdateModeconvert_update_moder   UpsertUpsertPointsrz   r  r   convert_update_result
PointsListPointsBatchr|   rR  upsert_points)r   r   r   ro  rp  r   rq  rr  r1   r8   vectors_batchidxrU  grpc_resulthttp_results                  r   upsertzQdrantRemote.upsert;  s>    &&,,/4>4Z4ZNNC

O5  %S_5  6 $$%??

3P -c 2  &: '66vs7KL!%  6   &$' "( "( &eV-?-?@ #77>"# "(   (F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"-7 * 9 9 N+v'8'89(<<[I**11!!$3!%'9"/# +	  2  f  *I,II*33K@@-5 * 9 9 N&$' "( "( &eT-=-=> #77>"# "(    **!0"/ +	 &&,,/++ 0"/ +	 --88FF /(.! G  f  *I,II*oTs   ;A0M48M9/8M>c                 ^   | j                   r"|D 	cg c]  }	t        j                  |	       }}	t        |t        j
                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }| j                  j                  t        j                  |||||||      | j                         j"                  }
|
J d       t%        j&                  |
      S t        |t        j                        rt%        j                  |      }| j(                  j*                  j-                  ||t	        j                  |||      ||      j"                  S c c}	w )Nr   )r   ro  r   rp  r   rq  r1   r   rw  )r   r   rq  )r   ro  update_vectorsrp  r1   )rS   r   convert_point_vectorsrs   r!   r  r  r   r  r  r   r   r   UpdateVectorsr   UpdatePointVectorsrz   r  r   r  r|   rR  r  )r   r   r   ro  rp  r   rq  r1   r8   rU  r  s              r   r  zQdrantRemote.update_vectors  s~    KQR6%j66u=6FR(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"-7 * 9 9 N**88''$3!%'9"/#  9  f  *I,II*33K@@-5 * 9 9 N&&11@@ /%33!0"/ 
 " A 
 f
; Ss   F*ru  c                    | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |      |	|||      | j                        j                   }|J d       t#        j$                  |      S | j'                  |      \  }}| j(                  j*                  j-                  ||||t/        t        j                  ||||            j                   S )N)names)r   ro  ru  points_selectorrp  r   r1   r   z#Delete vectors returned None result)vectorr   r   r   )r   ro  rp  r1   delete_vectors)rS   _try_argument_to_grpc_selectorrs   r!   r  r   r  r   r  r  r   DeleteVectorsr   DeletePointVectorsVectorsSelectorrz   r  r   r  '_try_argument_to_rest_points_and_filterr|   rR  r  r   )r   r   ru  r   ro  rp  r   r1   r8   r  opt_shard_key_selectorr  _points_filters                 r   r  zQdrantRemote.delete_vectors  si    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"**88''$3 00% %4%'9#
  9  f  *Q,QQ*33K@@#KKFSGW&&11@@ /!((("""0  A  fr   r|  c                    | j                   rt        |t        t        j                              rt        j                  |      }|D 	cg c]<  }	t        |	t        t        j                              rt        j                  |	      n|	> }}	t        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t!        j"                  |||||||      ||n| j$                        j&                  }
|
J d       |
D cg c]  }t)        j*                  |       c}S t        |t         j,                        rt)        j.                  |      }|D 	cg c]3  }	t        |	t         j0                        rt)        j2                  |	      n|	5 }}	| j4                  j6                  j9                  ||t        j:                  ||||      |      j&                  }|J d       |S c c}	w c c}w c c}	w )N)r   r|  r   r   r   r   r1   r   zRetrieve returned None result)r|  r   r   r   )r   r   point_requestr1   z!Retrieve API returned None result)rS   rs   r   r!   r   r   r   rF  rG  r   r  r  r  r  r   Getr   	GetPointsrz   r  r   rL  r  r  rO  rN  r|   rR  
get_pointsPointRequest)r   r   r|  r   r   r   r   r1   r8   r  r  recordr  s                r   retrievezQdrantRemote.retrieve  sQ    ,(;F<W<W(XY)HHV  C "#':6;Q;Q'RS 88=    &::<HL+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"%%))$3!-!-%0'9# $+#6DMM *  f  %F'FF%MSTV6J66v>VTT ,(@(@A)GGU C 6@T\\5R,,S1X[[  
 --88CC /'$11!- ,0	   D 
 f  *O,OO*o@ Us   
AI.I 8Ic                 T   d }t        |t              rtt        j                  t        j                  |D cg c]<  }t        |t        t        j                              rt        j                  |      n|> c}            }||fS t        |t        j                        r|}||fS t        |t        t        j                              rD|j                  t        j                  |j                        }t        j                  |      }||fS t        |t        j                        r2t        j                  t        t        j                   |            }||fS t        |t        j                        rt        j                  |      }||fS t#        dt%        |             c c}w )N)r|  r   )r   "Unsupported points selector type: )rs   r   r   PointsSelectorPointsIdsListr   r!   rF  r   rG  r   r   r  convert_points_selectorr   r   FilterSelectorr\   ru   )clsr   r   r  r  s        r   r  z+QdrantRemote._try_argument_to_grpc_selectorY  s    "fd#"11)) $* $*C  *#/B6CYCY/Z[ '@@E!$% $*	O4  222  3 34$O  222 )>)> ?@+%/%J%J6K[K[%\"(@@HO  222 .(@@&//?O  222	 ,"11@O  222 A$v,PQQ/s   AF%c                    t        |t              r\|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}t        t        j                  ||      }|S t        |t        j                        rt	        j                  |      }||_        |S t        |t        t        j                              r|}||_        |S t        |t        j                        rt        t        j                  ||      }|S t        |t        j                        r1t        t        j                  t	        j                  |      |      }|S t!        dt#        |             c c}w )N)r   r   )r   r   r  )rs   r   r   rO  r   rN  r   r!   PointIdsListr  r  r   r   r   r  r   r\   ru   )r  r   r   r  r  r  s         r   _try_argument_to_rest_selectorz+QdrantRemote._try_argument_to_rest_selector{  sZ    fd# "!C 6@T\\5R,,S1X[[!   (##,O. %  3 34(@@HO(:O%   )>)> ?@$O(:O%  .'%%f@RO  ,'%%!008,O  A$v,PQQ5s   8E-r  c                 |    |j                  d      }|g S t        ||      }|dk(  rt        |j                        S g S )Npoints_selector_one_ofr   )
WhichOneofgetattrr   r|  )r  r  namevals       r   _points_selector_to_points_listz,QdrantRemote._points_selector_to_points_list  sF     ))*BC<Iot,8= 	r   c                 :   d }d }t        |t              rB|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}||fS t        |t        j                        rit	        j                  |      }t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|}||fS t        |t        j                        rt	        j                  |      }||fS t        dt!        |             c c}w )Nr  )rs   r   r   rO  r   rN  r  r  r!   r  r   r  r   r   r   r\   ru   )r  r   r  r  r  selectors         r   r  z4QdrantRemote._try_argument_to_rest_points_and_filter  s    fd# "!C 6@T\\5R,,S1X[[!  * #  3 34!99&AH(F$7$78"//  Hf&;&;<"//   3 34mmG   5 56mmG  .G  , //7G  A$v,PQQ's   8Fc                 x   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||||      | j                         j"                        S | j%                  ||      }| j&                  j(                  j+                  |||||      j"                  }	|	J d       |	S )Nr   ro  r   rp  r   r1   r   )r   ro  r  rp  r1   zDelete points returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   Deleter   DeletePointsrz   r  r  r|   rR  delete_points
r   r   r  ro  rp  r   r1   r8   r  r  s
             r   deletezQdrantRemote.delete  sG    6:6Y6Y73O3 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ''%%(7!.!)+= ' !MM ( 
 &  #AA!3O 150C0C0N0N0\0\ / /! 1] 1 f  %D'DD%Mr   rv  c	                    | j                   r| j                  |      \  }
}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |
||||      | j"                        j$                        S | j'                  |      \  }}| j(                  j*                  j-                  ||||t        j                  |||||            j$                  }|J d       |S )N)r   ro  rv  r  rp  r   r   r1   r   )rv  r   r   r   r   r   ro  rp  r1   set_payloadzSet payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   
SetPayloadr   SetPayloadPointsr  rz   r  r  r|   rR  r  )r   r   rv  r   r   ro  rp  r   r1   r8   r  r  r  r  r  s                  r   r  zQdrantRemote.set_payload  sk    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ++))(7! * : :7 C(7!)+= '	 !MM ,  &    $KKFSGW040C0C0N0N0Z0Z /!"--#""0 1[ 1 f  %B'BB%Mr   c                    | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |	|||      | j"                        j$                        S | j'                  |      \  }}| j(                  j*                  j-                  ||||t        j.                  ||||            j$                  }|J d       |S )N)r   ro  rv  r  rp  r   r1   r   )rv  r   r   r   r  zOverwrite payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   OverwritePayloadr   r  r  rz   r  r  r|   rR  overwrite_payloadr  )r   r   rv  r   ro  rp  r   r1   r8   r  r  r  r  r  s                 r   r  zQdrantRemote.overwrite_payload3  se    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  11))(7! * : :7 C(7!)+= ' !MM 2  &   $KKFSGW040C0C0N0N0`0` /!"--#""0	 1a 1 f  %H'HH%Mr   keysc                    | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||	|||      | j                         j"                        S | j%                  |      \  }}| j&                  j(                  j+                  ||||t        j                  ||||            j"                  }|J d       |S )N)r   ro  r  r  rp  r   r1   r   )r  r   r   r   )r   ro  rp  r1   delete_payloadzDelete payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   DeletePayloadr   DeletePayloadPointsrz   r  r  r|   rR  r  )r   r   r  r   ro  rp  r   r1   r8   r  r  r  r  r  s                 r   r  zQdrantRemote.delete_payloadg  sZ    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ..,,(7!!(7!)+= ' !MM /  &   $KKFSGW040C0C0N0N0]0] /!%33""0	  1^ 1 f  %E'EE%Mr   c                 x   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||||      | j                         j"                        S | j%                  ||      }| j&                  j(                  j+                  |||||      j"                  }	|	J d       |	S )Nr  r   )r   ro  rp  r1   r  zClear payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   ClearPayloadr   ClearPayloadPointsrz   r  r  r|   rR  clear_payloadr  s
             r   r  zQdrantRemote.clear_payload  sG    6:6Y6Y73O3 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  --++(7!.!)+= ' !MM . 
 &  #AA!3O 150C0C0N0N0\0\ /! / 1] 1 f  %D'DD%Mr   update_operationsc           	      J   | j                   r|D cg c]  }t        j                  |       }}t        |t        j
                        rt        j                  |      }| j                  j                  t        j                  |||||      | j                        j                  D cg c]  }t        j                  |       c}S | j                  j                   j#                  ||||t	        j$                  |            j                  }|J d       |S c c}w c c}w )N)r   ro  
operationsrp  r1   r   )r  )r   ro  rp  r1   r  z!Batch update points returned None)rS   r   convert_update_operationrs   r!   r  r  r   UpdateBatchr   UpdateBatchPointsrz   r  r   r  r|   rR  batch_updateUpdateOperations)	r   r   r  ro  rp  r1   r8   	operationr  s	            r   batch_update_pointsz QdrantRemote.batch_update_points  s<    Pa!Pa9
33I>Pa  ! (F$8$89%<<XF #..::**(7!#4!) ' !MM ; 	 &		F 008	  7;6I6I6T6T6a6a /!"("9"9EV"W 7b 7 f  %J'JJ%M;!s   D)D change_aliases_operationsc                 x   | j                   r|D cg c]3  }t        |t        j                        st	        j
                  |      n|5 }}| j                  j                  t        j                  ||      ||      j                  S | j                        j                  S |D cg c]3  }t        |t        j                        rt        j
                  |      n|5 }}| j                  j                  j                  |t        j                   |            j                  }|J d       |S c c}w c c}w )N)r1   actionsr   )r  )r1   change_aliases_operationzUpdate aliases returned None)rS   rs   r   AliasOperationsr   convert_alias_operationsr   UpdateAliasesChangeAliasesrz   r  r   r:   aliases_apiupdate_aliasesr!   ChangeAliasesOperation)r   r  r1   r8   r  r  r  s          r   update_collection_aliasesz&QdrantRemote.update_collection_aliases  sk     ";( ";I &i1E1EF 77	B"# "; % ( ((66""#4 $+#6 7  f
 =AMM 7  f 7$
 7	 i)=)=> 33I> 7 	! $
 #ii33BB%+%B%B0& C 

 & 	 !A#AA!?( $
s   8D2(8D7c                    | j                   r|| j                  j                  t        j                  |      | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                  |      j                  }|J d       |S c c}w )Nr   r   aliasesz$Get collection aliases returned None)rS   r   ListCollectionAliasesr   ListCollectionAliasesRequestrz   r  ri  CollectionsAliasesResponser   convert_alias_descriptionr:   r  get_collection_aliasesr  )r   r   r8   r;  descriptionr  s         r   r  z#QdrantRemote.get_collection_aliases  s     ,,BB11/R C  g  33YaYa+J88EYa  II!!888Y`` 	 !I#II!s   %Cc                    | j                   rz| j                  j                  t        j                         | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                         j                  }|J d       |S c c}w )Nr   r  zGet aliases returned None)rS   r   ListAliasesr   ListAliasesRequestrz   r  ri  r  r   r  r:   r  get_collections_aliasesr  r   r8   r;  r  r  s        r   get_aliaseszQdrantRemote.get_aliases0  s    ,,88'')4== 9 g  33YaYa+J88EYa  II!!99;BB 	 !>#>>!   #C c                    | j                   rz| j                  j                  t        j                         | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                         j                  }|J d       |S c c}w )Nr   )collectionszGet collections returned None)rS   r   Listr   ListCollectionsRequestrz   r  ri  CollectionsResponser   convert_collection_descriptionr:   collections_apiget_collectionsr  r  s        r   r  zQdrantRemote.get_collections@  s    ,,11++-t}} 2 k  ,, (0'/ ==kJ'/  II%%557>> 	 !B#BB!r  c                 @   | j                   rXt        j                  | j                  j	                  t        j                  |      | j                        j                        S | j                  j                  j                  |      j                  }|J d       |S )Nr  r   zGet collection returned None)rS   r   convert_collection_infor   r  r   GetCollectionInfoRequestrz   r  r:   r  get_collectionr   r   r8   r  s       r   r  zQdrantRemote.get_collectionR  s    55%%))11/R MM *  &	  /3ii.G.G.V.V+ /W /

& 	 !A#AA!r   c                 B   | j                   rO| j                  j                  t        j                  |      | j
                        j                  j                  S | j                  j                  j                  |      j                  }|J d       |j                  S )Nr  r   zCollection exists returned None)rS   r   CollectionExistsr   CollectionExistsRequestrz   r  existsr:   r  collection_existsr  s       r   r  zQdrantRemote.collection_exists`  s    ((99,,_M :  fVV
 59II4M4M4_4_+ 5` 5

& 	 !D#DD!}}r   optimizers_configcollection_paramsvectors_confighnsw_configquantization_configsparse_vectors_configstrict_mode_configrC   c                 *   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        j                        rt	        j                  |      }t        |t              rt	        j                  |      }t        |t        j                        rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }t        |t              rt	        j                  |      }t        |	t        j                         rt	        j"                  |	      }	t        |
t              rt	        j$                  |
      }
| j&                  j)                  t+        j,                  ||||||||	||

      ||      j0                  S | j.                        j0                  S t        |t*        j                        rt3        j
                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j4                        rt3        j                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j                        rt3        j                  |      }| j6                  j8                  j;                  |t        j,                  |||||||	|
      |      j0                  }|J d       |S )N)
r   r  r   r  r  r  r  r  r1   rC   r   )r  r   ru  r  r  sparse_vectorsr  rC   )update_collectionr1   zUpdate collection returned None)rS   rs   r!   OptimizersConfigDiffr   convert_optimizers_config_diffCollectionParamsDiffconvert_collection_params_diffdictconvert_vectors_config_diffHnswConfigDiffconvert_hnsw_config_diffr   QuantizationConfigDiff convert_quantization_config_diffconvert_sparse_vector_configStrictModeConfigconvert_strict_mode_configr  r   Updater   UpdateCollectionrz   r  r   VectorsConfigDiffr:   r  r  )r   r   r  r  r  r  r  r1   r  r  rC   r8   r  s                r   r  zQdrantRemote.update_collectionm  s    +V-H-HI$.$M$MN_$`!+V-H-HI$.$M$MN_$`!.$/!+!G!G!W+v'<'<=(AA+N-x8U8U/VW&0&Q&Q''# /6(2(O(O))% ,f.E.EF%/%J%JK]%^"(D)%55h?((//%%$3&7,#1 +(;*?'9#% $+#6 0  f =AMM 0  f  ')B)BC * I IJ[ \')B)BC * I IJ[ \nd&<&<='CCNSNk4#6#67$==kJK)4+F+FG","M"MNa"b"ii77II$55"3(&'$74#5!	  J 
 & 	 !D#DD!r   c                 D   | j                   rY| j                  j                  t        j                  ||      ||      j                  S | j
                        j                  S | j                  j                  j                  ||      j                  }|J d       |S )Nr   r1   r   zDelete collection returned None)
rS   r   r  r   DeleteCollectionrz   r  r:   r  delete_collection)r   r   r1   r8   r  s        r   r+  zQdrantRemote.delete_collection  s     ((//%%owW#*#6 0  f<@MM 0  f
 #ii77IIW J 

& 	 !D#DD!r   shard_numberreplication_factorwrite_consistency_factoron_disk_payload
wal_configsharding_methodc                 @   | j                   rt        |t        j                  t        f      rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        j                        rt        j                  |	      }	t        |
t        t        j                              rt        j                  |
      }
t        |t              rt        j                   |      }t        |t        j"                        rt        j$                  |      }t        |t        j&                        rt        j(                  |      }t        |t              rt        j*                  |      }t-        j.                  |||	||||||||
||||      }| j0                  j3                  || j4                        j6                  S t        |t,        j                        rt9        j                  |      }t        |t,        j                        rt9        j                  |      }t        |	t,        j                        rt9        j                  |	      }	t        |
t,        j                        rt9        j                  |
      }
t        j.                  ||||||||	|
||||      }| j:                  j<                  j?                  |||      j6                  }|J d       |S )N)r   r  r0  r  r,  r/  r1   r  r-  r.  r  r  r1  r  rC   r   )ru  r,  r-  r.  r/  r  r  r0  r  r  r1  r  rC   )r   create_collectionr1   zCreate collection returned None) rS   rs   r!   VectorParamsr  r   convert_vectors_configr  r  r  r  WalConfigDiffconvert_wal_config_diffr   QuantizationConfigconvert_quantization_configr"  ShardingMethodconvert_sharding_methodr#  r$  r  r   CreateCollectionr   Createrz   r  r   r:   r  r3  )r   r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   r8   r3  create_collection_requestr  s                       r   r3  zQdrantRemote.create_collection  s   & .6+>+>*EF!+!B!B>!R+v'<'<=(AA+N+V-H-HI$.$M$MN_$`!*f&:&:;'??
K
#223 '1&L&LM`&a#/6(2(O(O))% /6+@+@A","D"D_"U,f.E.EF%/%J%JK]%^"(D)%55h? $ 5 5 /'%"3) /-#5)A$7&; /#5!!" ((//0A4==/Y```k4#6#67$==kJK')B)BC * I IJ[ \j$"4"45#;;JGJ)4+B+BC","H"HI\"]$*$;$;"%1%=+#/! 30+1%
!  #ii77II+7 J 
 &	 	 !D#DD!r   c                 h    | j                  ||       | j                  |||||||||	|
|||||      S )Nr   )r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   )r+  r3  )r   r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   r8   s                    r   recreate_collectionz QdrantRemote.recreate_collectionC  s\    & 	@%%+)%1%=+#/! 3"7+1 & 
 	
r   c                 2    | j                   rt        S t        S r   )rS   r#   r$   r   s    r   _updater_classzQdrantRemote._updater_classj  s    $$$$r   batches_iteratormax_retriesparallelmethodc
                 8   |(|t               v r|}
n)t        d| dt                      dt               v rdnd}
| j                  rL|| j                  | j                  || j
                  | j                  ||| j                  | j                  ||	d}n || j                  |||||	d| j                  }|dk(  r3 | j                  j                  d	i |}|j                  |      D ]  } y t        || j                  |
      } |j                  |fi |D ]  } y )
NzStart methods z& is not available, available methods: 
forkserverspawn)r   r2   r+   rD  r   rC   ro  r   r   r1   rq  rr  )r   urirD  ro  r   rq  rr  r;   )start_methodrP   )r   r\   rS   r^   rT   rV   ri   rU   rz   rx   ry   rB  r   processr"   unordered_map)r   rC  r   rD  rE  rF  ro  r   rq  rr  rK  updater_kwargsupdaterr   pools                  r   _upload_collectionzQdrantRemote._upload_collectionq  sF    .00% $VH,RShSjRkl  ,8;P;R+R<X_L#2

*{{ ..&8--==!.*N  $3}}*&8!.*	 //	N q=/d))//A.AG__%56 7 &h0C0CR^_D'T''(8KNK Lr   
batch_sizec                 r    | j                   j                  ||      }| j                  ||||||||	|
	       y )N)recordsrR  	rC  r   rD  rE  rF  ro  r   rq  rr  )rB  iterate_records_batchesrQ  )r   r   r   rR  rE  rF  rD  ro  r   rq  rr  r8   rC  s                r   upload_pointszQdrantRemote.upload_points  sV      ..FFz G 
 	-+#1'# 	  
	
r   c                 v    | j                   j                  ||||      }| j                  ||||||	|
||	       y )N)ru  rv  r|  rR  rU  )rB  iterate_batchesrQ  )r   r   ru  rv  r|  rR  rE  rF  rD  ro  r   rq  rr  r8   rC  s                  r   upload_collectionzQdrantRemote.upload_collection  s\       ..>>!	 ? 
 	-+#1'# 	  
	
r   
field_namefield_schema
field_typec           	         |t        dt        dd       |}| j                  rd }	t        |t        j
                        rt        j                  |      }t        |t              r(t        j                  t	        j
                  |            }t        |t              rt        |      }t        |t        t        j                              rt        j                  |      }t        |t        j                        r|}	|	j!                  d      }
t#        |	|
      }t        |t        j$                        rt        j&                  j(                  }t        |t        j*                        rt        j&                  j,                  }t        |t        j.                        rt        j&                  j0                  }t        |t        j2                        rt        j&                  j4                  }t        |t        j6                        rt        j&                  j8                  }t        |t        j:                        rt        j&                  j<                  }t        |t        j>                        rt        j&                  j@                  }t        |t        jB                        rt        j&                  jD                  }t        jF                  ||||	|||      }tI        jJ                  | jL                  jO                  || jP                        jR                        S t        |t              rtI        j                  |      }t        |t        j                        rtI        j                  |      }| jT                  jV                  jY                  |t	        jN                  ||      |||	      jR                  }|J d
       |S )Nz2field_type is deprecated, use field_schema insteadr(   zpayload-index-field-type)rF   rG   rH   r  index_params)r   r[  r]  field_index_paramsro  rp  r1   r   )r[  r\  )r   create_field_indexro  rp  r1   z Create field index returned None)-r   DeprecationWarningrS   rs   r!   PayloadSchemaTyper   convert_payload_schema_typer)  intr   r   PayloadSchemaParamsconvert_payload_schema_paramsr   PayloadIndexParamsr  r  TextIndexParams	FieldTypeFieldTypeTextIntegerIndexParamsFieldTypeIntegerKeywordIndexParamsFieldTypeKeywordFloatIndexParamsFieldTypeFloatGeoIndexParamsFieldTypeGeoBoolIndexParamsFieldTypeBoolDatetimeIndexParamsFieldTypeDatetimeUuidIndexParamsFieldTypeUuidCreateFieldIndexCollectionr   r  r   CreateFieldIndexrz   r  r|   indexes_apira  )r   r   r[  r\  r]  ro  rp  r1   r8   r`  r  r_  requestr  s                 r   create_payload_indexz!QdrantRemote.create_payload_index  s    !L+.	 &L!%,(@(@A)EElS,,)EE,,\:  ,,
  AN,1K1K(LM)GGU,(?(?@%1")44^D&'94@lD,@,@A#'>>#?#?LlD,C,CD#'>>#B#BLlD,C,CD#'>>#B#BLlD,A,AB#'>>#@#@LlD,?,?@#'>>#>#>LlD,@,@A#'>>#?#?LlD,D,DE#'>>#C#CLlD,@,@A#'>>#?#?L55 /%'#5!G 33  11'4==1QXX  lC(%AA,OLlD$;$;<%CCLQL,0,?,?,K,K,^,^+%66%L   -_ -
 & 	 !E#EE!r   c                 T   | j                   r^t        j                  |||||      }t        j                  | j
                  j                  || j                        j                        S | j                  j                  j                  |||||      j                  }|J d       |S )N)r   r[  ro  rp  r1   r   z Delete field index returned None)rS   r   DeleteFieldIndexCollectionr   r  r   DeleteFieldIndexrz   r  r|   r|  delete_field_index)	r   r   r[  ro  rp  r1   r8   r}  r  s	            r   delete_payload_indexz!QdrantRemote.delete_payload_indexO	  s     55 /%!G 33  11'4==1QXX  -1,?,?,K,K,^,^+! -_ -
 & 	 !E#EE!r   c                 j   | j                   rh| j                  j                  t        j                  |      | j
                        j                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                  |      j                  }|J d       |S c c}w )Nr  r   'List snapshots API returned None result)rS   r   r  r   ListSnapshotsRequestrz   snapshot_descriptionsr   convert_snapshot_descriptionr|   snapshots_apilist_snapshotsr  )r   r   r8   	snapshotssnapshots        r   r  zQdrantRemote.list_snapshotsn	  s     ++00))/JTXTaTa 1 ##  W``V_(J;;HEV_``''55DD+ E 

& 	 $O&OO$ as   B0c                 0   | j                   rZ| j                  j                  t        j                  |      | j
                        j                  }t        j                  |      S | j                  j                  j                  ||      j                  S )Nr  r   )r   ro  )rS   r   r=  r   CreateSnapshotRequestrz   snapshot_descriptionr   r  r|   r  create_snapshotr  )r   r   ro  r8   r  s        r   r  zQdrantRemote.create_snapshot}	  s     **11**?KUYUbUb 2 ""  ::8DD""00@@+$ A 

&	r   snapshot_namec                     | j                   r=| j                  j                  t        j                  ||      | j
                         y| j                  j                  j                  |||      j                  S )N)r   r  r   T)r   r  ro  )
rS   r   r  r   DeleteSnapshotRequestrz   r|   r  delete_snapshotr  )r   r   r  ro  r8   s        r   r  zQdrantRemote.delete_snapshot	  s|     &&**$3= 	 '  ""00@@+' A 
 &		r   c                 b   | j                   rf| j                  j                  t        j                         | j
                        j                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                         j                  }|J d       |S c c}w )Nr   z,List full snapshots API returned None result)rS   r   ListFullr   ListFullSnapshotsRequestrz   r  r   r  r|   r  list_full_snapshotsr  )r   r8   r  r  s       r   r  z QdrantRemote.list_full_snapshots	  s    ++44--/ 5  $#  W``V_(J;;HEV_``''55IIKRR	$T&TT$	 as   B,c                 *   | j                   rX| j                  j                  t        j                         | j
                        j                  }t        j                  |      S | j                  j                  j                  |      j                  S )Nr   )ro  )rS   r   
CreateFullr   CreateFullSnapshotRequestrz   r  r   r  r|   r  create_full_snapshotr  )r   ro  r8   r  s       r   r  z!QdrantRemote.create_full_snapshot	  s|    #'#6#6#A#A..0$-- $B $"" ! ::;OPP""00EE4EPWWWr   c                     | j                   r<| j                  j                  t        j                  |      | j
                         y| j                  j                  j                  ||      j                  S )N)r  r   T)r  ro  )
rS   r   
DeleteFullr   DeleteFullSnapshotRequestrz   r|   r  delete_full_snapshotr  )r   r  ro  r8   s       r   r  z!QdrantRemote.delete_full_snapshot	  so     **..]K +  ""00EE'd F 

&	r   locationchecksumpriorityc           
          | j                   j                  j                  ||t        j                  ||||            j
                  S )Nr  r  r  r/   )r   ro  snapshot_recover)r|   r  recover_from_snapshotr!   SnapshotRecoverr  )r   r   r  r/   r  r  ro  r8   s           r   recover_snapshotzQdrantRemote.recover_snapshot	  sP     ""00FF+#33!!!	 G 	
 &		r   shard_idc                 z    | j                   j                  j                  ||      j                  }|J d       |S )N)r   r  r  )r|   r  list_shard_snapshotsr  )r   r   r  r8   r  s        r   r  z!QdrantRemote.list_shard_snapshots	  sP     ''55JJ+ K 
 & 	 $O&OO$r   c                 f    | j                   j                  j                  |||      j                  S )N)r   r  ro  )r|   r  create_shard_snapshotr  )r   r   r  ro  r8   s        r   r  z"QdrantRemote.create_shard_snapshot	  s9     ""00FF+ G 
 &		r   c                 h    | j                   j                  j                  ||||      j                  S )N)r   r  r  ro  )r|   r  delete_shard_snapshotr  )r   r   r  r  ro  r8   s         r   r  z"QdrantRemote.delete_shard_snapshot	  s<     ""00FF+'	 G 

 &	r   c                     | j                   j                  j                  |||t        j                  ||||            j
                  S )Nr  )r   r  ro  shard_snapshot_recover)r|   r  recover_shard_from_snapshotr!   ShardSnapshotRecoverr  )	r   r   r  r  r/   r  r  ro  r8   s	            r   recover_shard_snapshotz#QdrantRemote.recover_shard_snapshot	  sS     ""00LL+#)#>#>!!!	$	 M 

 &
	r   r   shards_number	placementinitial_statec                 ~   | j                   rt        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }| j                  j                  t        j                  ||t        j                  ||||xs g |            ||      j                  S | j                        j                  S | j                  j                   j#                  ||t        j$                  |||||            j                  }	|	J d       |	S )N)r   r  r-  r  r  r   r1   r}  r   )r   r1   create_sharding_keyzCreate shard key returned None)rS   rs   r   r!   ShardKeyr   convert_shard_keyReplicaStateconvert_replica_stater   CreateShardKeyr   CreateShardKeyRequestrz   r  r|   distributed_apicreate_shard_keyCreateShardingKey)
r   r   r   r  r-  r  r  r1   r8   r  s
             r   r  zQdrantRemote.create_shard_key
  s?    )%8%IJ&88C	-)<)<= * @ @ O((77**$3# //"+&3+="+/r&3
 $+#6 8  f =AMM 8  f ((88II /$*$<$<'"/'9'"/% J 
 f  %G'GG%Mr   c           	         | j                   rt        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |            ||      j                  S | j                        j                  S | j                  j                  j                  ||t        j                   |            j                  }|J d       |S )N)r   r  r   )r   r1   drop_sharding_keyzDelete shard key returned None)rS   rs   r   r!   r  r   r  r   DeleteShardKeyr   DeleteShardKeyRequestrz   r  r|   r  delete_shard_keyDropShardingKey)r   r   r   r1   r8   r  s         r   r  zQdrantRemote.delete_shard_key<
  s    )%8%IJ&88C	((77**$3# //"+ $+#6 8 	 f	 =AMM 8 	 f	 ((88II /"("8"8'# J  f  %G'GG%Mr   c                    | j                   rN| j                  j                  t        j                         | j
                        }t        j                  |      S | j                  j                  j                         }|J d       |S )Nr   zHealthcheck returned None)rS   r   HealthCheckr   HealthCheckRequestrz   r   convert_health_check_replyr   service_apiroot)r   version_infos     r   infozQdrantRemote.info\
  sy    >>55'')4== 6 L 88FFyy,,113'D)DD'r   cluster_operationc                    | j                   rt        j                  |      }i }t        |t        j
                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nnt        |t        j                        r||d<   nNt        |t        j                        r||d<   n.t        |t        j                        r||d<   nt        d	|       | j                  j                  t	        j                   d||d
|||      j$                  S | j"                        j$                  S | j&                  j(                  j+                  |||      j$                  }|J d       |S )N
move_shardreplicate_shardabort_transferdrop_replicar  r  restart_transferreplicate_pointszUnknown cluster operation: r)  r   )r   cluster_operationsr1   z'Cluster collection update returned NonerP   )rS   r   convert_cluster_operationsrs   r   	MoveShardReplicateShardAbortShardTransferReplicar  r  RestartTransferReplicatePointsrt   r   UpdateCollectionClusterSetup#UpdateCollectionClusterSetupRequestrz   r  r   r  update_collection_cluster)r   r   r  r1   r8   grpc_operationupdate_results          r   cluster_collection_updatez&QdrantRemote.cluster_collection_updatef
  s     * E EFW XN+T^^</@|,-t/B/BC4E01-t/F/FG3D/0-t||<1B~.-t/B/BC5F12-t/B/BC5F12-t/C/CD5F12-t/C/CD5F12"=>O=P QRR((EE88 $3WHV $+#6	 F 
 f =AMM	 F 
 f 		11KK+@Q[b L 

& 	 (S*SS(r   c                 t    | j                   j                  j                         j                  }|J d       |S )NzCluster status returned None)r   r  cluster_statusr  )r   status_results     r   r  zQdrantRemote.cluster_status
  s8    		11@@BII(H*HH(r   c                 t    | j                   j                  j                         j                  }|J d       |S )Nz"Recover current peer returned None)r   r  recover_current_peerr  )r   recover_results     r   r  z!QdrantRemote.recover_current_peer
  s8    22GGIPP)O+OO)r   peer_idforcec                 |    | j                   j                  j                  |||      j                  }|J d       |S )N)r  r  r1   zRemove peer returned None)r   r  remove_peerr  )r   r  r  r1   r8   r  s         r   r  zQdrantRemote.remove_peer
  sP     		11== > 
 &	 	
 (E*EE(r   c                 0   | j                   rP| j                  j                  t        j                  |      | j
                        }t        j                  |      S | j                  j                  j                  |      j                  }|J d       |S )Nr  r   z%Collection cluster info returned None)rS   r   CollectionClusterInfor   CollectionClusterInfoRequestrz   r   convert_collection_cluster_infor   r  collection_cluster_infor  )r   r   collection_infos      r   r  z$QdrantRemote.collection_cluster_info
  s    "33II11/R J O ==oNN))33KK+ L 

& 	 *S,SS*r   completed_limitc                 z    | j                   j                  j                  ||      j                  }|J d       |S )N)r   r  zGet optimizations returned None)r:   r  get_optimizationsr  )r   r   r  r8   r  s        r   r  zQdrantRemote.get_optimizations
  sL     **<<++ = 
 & 	 !D#DD!r   c           
         | j                   r| j                  j                  t        j                  |      | j
                        }t        j                  |j                  D cg c]5  }t        j                  t        j                  |j                              7 c}      S | j                  j                  j                  |      j                   }|J d       |S c c}w )Nr  r   )r   )
shard_keyszList shard keys returned None)rS   r   ListShardKeysr   ListShardKeysRequestrz   r!   ShardKeysResponser  ShardKeyDescriptionr   r  r   r   r  list_shard_keysr  )r   r   r8   r;  skr  s         r   r  zQdrantRemote.list_shard_keys
  s    
 ,,::))/J ; H ++
 '11	 2 ..&88@ 2	  **::+ ; 

& 	 !B#BB!s   %:C"details_levelc                 z    | j                   j                  j                  ||      j                  }|J d       |S )N)r  r1   zCluster telemetry returned None)r   r  cluster_telemetryr  )r   r  r1   r8   r  s        r   r  zQdrantRemote.cluster_telemetry
  sL     **<<' = 
 & 	 !D#DD!r   )Ni  i  FNNNNNNNTNNr   )r   N)NNNNN
   NTFNNNNN)NN)NNNNNr  r)   TFNNNNNN)Nr)   r  NNNN)	Nr  NNTFNNN)NTNNN)Nr  FNNN)TNNNNN)TNNNN)TNNN)TFNNN)TNN)	NNNNNNNNN)NNNNNNNNNNNNNN)r;   NFNNN)@   r;   Nr)   FNNN)
NNr  r;   Nr)   FNNN)NNTNN)T)NNNT)NNNNN)__name__
__module____qualname__r{   r   r)  re  boolr  r   r   r   rR   staticmethodr   propertyr   floatr   tupler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r:   ri  rO  r   SparseVectorr  
NumpyArrayDocumentImageInferenceObjectr   r   r   r
   PayloadSelectorr   r  r  r
  r  r  r  WithLookupInterfaceGroupsResultr.  SearchMatrixPairsResponser8  SearchMatrixOffsetsResponser@  rP  RecordrW  CountResultrb  rj  rl  Pointsr  r  UpdateResultr  PointVectorsr  r  r  r  classmethodr  r!   r  r  rF  r  r  Payloadr  r  r  r  UpdateOperationr  r  r  r  r  r  r   r  CollectionInfor  r  r  r  r'  r  r   r	   SparseVectorParamsr#  r  r+  r4  r6  r8  r:  r3  r@  r   r%   rB  r   rQ  r}  rW  VectorStructrZ  rc  r~  r  SnapshotDescriptionr  r  r  r  r  r  SnapshotPriorityr  r  r  r  r  r  r  r  r  VersionInfor  ClusterOperationsr  ClusterStatusr  r  r  r  r  OptimizationsResponser  r   r  DistributedTelemetryDatar  __classcell__)r   s   @r   r'   r'   -   s    !!"!".2W[$( $)-U4ZU DjU 	U
 U d{U tU d
U tU DjU 38nt+U &b#g."in:L1MMPTTU "U :U c3h$&U  !Un %)#s(^;>IL	 <    s t . * *cDj#sTz3:&M N * *
/S 
/R6



3  	L$"6"6 	L 	L 	GT__ 	G 	G 	J 2 2 	J 	J 	E4?? 	E 	E #hy) # # #hy) # #(  AE,037!EI-2(,3748<@"3{{ }}
u+
tE{
 

 ++	
 

 .. ++ 

  	{ Tz{ ..4#77$>{ llT){  ))D0!{" #{$ d
%{& Xc]*U-B-BB'{( Xc]*){* +{, ))D0-{. **T1/{0 "22T91{2 t3{4 5{6 
		7{B 59"-- 5--.- **T1	-
 t- - 
e!!	"-x  AE,037EI-2(,8<3748<@"7B'B' B' }}
u+
tE{
 

 ++	
 

 .. ++ 

  		B' TzB' ..4#77$>B'  llT)!B'" ))D0#B'$ %B'& 'B'( Xc]*U-B-BB)B'* Xc]*+B', -B'. ..5/B'0 ))D01B'2 **T13B'4 "22T95B'6 t7B'8 9B': 
		;B'N -1 48<@"6$6$ llT)6$ 	6$
 6$ Tz6$ **T16$ "22T96$ t6$ 6$ 
	(	(6$v -1 48<@"6$6$ llT)6$ 	6$
 6$ Tz6$ **T16$ "22T96$ t6$ 6$ 
	*	*6$v .2)-'+EI-248<@"XHXH ||d*XH 	XH
 --$&XH $XH Xc]*U-B-BBXH Xc]*XH **T1XH "22T9XH tXH XH 
tELL!5==4#77	8XHz -1<@"48// llT)/ 	/
 "22T9/ t/ **T1/ / 
		/j -1"48<@99 9 llT)	9
 9 9 t9 **T19 "22T99 9 
		9~ /3<@-1/3"hh h 	h
 %%,h "22T9h ||d*h %%,h th h 
		h\ /3<@-1"33 ++,3 	3
 %%,3 "22T93 ||d*3 t3 3 
		3t /3<@"55 #5 $$	5
 5 %%,5 "22T95 t5 5 
		5v FJ-248<@"FF emm$F Xc]*U-B-BB	F
 Xc]*F **T1F "22T9F tF F 
ell	FP 3))3	t""D$9$9D$@@	A3 3B !$$! "22T9! 
			! !F "11	dll	   )) 	tF**+d2FMMD4HH	I   B /3<@"// --/ 	/
 %%,/ "22T9/ t/ / 
		/l /3<@"55 5 $$	5
 4Z5 5 %%,5 "22T95 t5 5 
		5x /3<@"22 2 $$	2
 2 %%,2 "22T92 t2 2 
		2r /3<@"11 sm1 $$	1
 1 %%,1 "22T91 t1 1 
		1n /3<@"// --/ 	/
 %%,/ "22T9/ t/ / 
		/j /3"'' $E$9$9:' 	'
 %%,' t' ' 
e  	!'X #&#+E,A,A#B& t& 	&
 
&P".1		)	)(C E,L,L   0I0I $c S UEYEY      @D?C9=37CG"OS<@)-YY !55<Y !55<	Y
 //$6Y ))D0Y #99D@Y tY  'sE,D,D'DELY "22T9Y --$&Y Y 
Yx ;?"-04ZJM	$ X\#')-/3'+37?C15?C"OS7;<@)-!jj **WS%:L:L5L-MMPTTj Dj	j
  $Jj #&*j j ))D0j !55<j ''$.j #55<j tj  'sE,D,D'DELj --4j "22T9j  --$&!j" #j$ 
%j^ X\#')-/3'+37?C15?C"OS7;<@)-!%
%
 **WS%:L:L5L-MMPTT%
 Dj	%

  $J%
 #&*%
 %
 ))D0%
 !55<%
 ''$.%
 #55<%
 t%
  'sE,D,D'DEL%
 --4%
 "22T9%
  --$&!%
" #%
$ 
%%
N %\ 2 % % !<@-1/38"8 8 	8
 8 d
8 8 "22T98 ||d*8 %%,8 
8| !<@-1/3

 **+
 	

 
 d

 
 
 "22T9
 ||d*
 %%,
 
 

D 48.2!<@-1/3!
!
 c5+++,u/?/??(5K]K]B^^!
 $sCx.)D0	!

 emm$t+!
 !
 !
 d
!
 !
 !
 "22T9!
 ||d*!
 %%,!
 !
 
!
N 8<59/3"aa a --4	a
 ++d2a a %%,a ta a 
		aN /3"  	
 %%, t  
		>".1	e''	(  26"*.AD		"	"T	) FJ"36>BUX	$
C 
D9R9R4S 
X X XHaHa X 04 (,?B	$ ##26  t	
 * ((4/   
*".1=@	e''	( AE".19=PS		"	"T	)   	
   
( ##26  	
 t * ((4/   
6 %))-&*37"-- >>- Tz	-
  $J- 9t#- ))D0- t- - 
-f #	 >> t	
  
@e''  #	(( !22( t	(
 ( 
(T 3 3 d  ""	 d{ t	
  
 s u?Z?Z   '+ t 	
 
	$	$  
	 	 	4 %)"Tz t 	
 
	'	'r   r'   )?importlib.metadataro   loggingrb   rq   multiprocessingr   	threadingr   typingr   r   r   r   r	   r
   r   r   rg   r   r   urllib3.utilr   r   urllib.parser   $qdrant_client.common.client_warningsr   r   qdrant_clientqdrant_client._pydantic_compatr   qdrant_client.authr   qdrant_client.client_baser   "qdrant_client.common.version_checkr   r   qdrant_client.connectionr   qdrant_client.conversionsr   ri  &qdrant_client.conversions.common_typesr   $qdrant_client.conversions.conversionr   r   r   qdrant_client.httpr   r    r!    qdrant_client.parallel_processorr"   $qdrant_client.uploader.grpc_uploaderr#   $qdrant_client.uploader.rest_uploaderr$   qdrant_client.uploader.uploaderr%   r'   rP   r   r   <module>rD     s{        1 	 	 	   '   P & 4 ) 0 P 0 ; F 
 ; : ? B B 8~*: ~*r   