
    <iץ                    j   S SK rS SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
JrJrJrJrJr  S SKrS SKJr  S SKJrJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SK J!r!  S SK"J#r#J$r$  S SK%J&r&  S SK'J(r)  S SK*J+r+  S SK,J-r-J.r.J/r/  S SK0J1r1J2r2J3r3  S SK4J5r5  S SK6J7r7  S SK8J9r9  S SK:J;r;   " S S\!5      r<g)    N)get_all_start_methods)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            '          ^  \ rS rSrSrSr             SS\S-  S\S-  S\S\S	\S-  S
\S-  S\S-  S\S-  S\S-  S\	\\
4   S-  S\/ \4   \/ \\   4   -  S-  S\S\S-  S\
4U 4S jjjr\S\4S j5       rSS\S-  S\
SS4S jjr\S\S\\S-  \\S-  \S-  4   4S j5       rS\4S jrSS jrSS jrSS jrSS jrSS jrS\4S jr\S\R:                  4S  j5       r\S\R>                  4S! j5       r \S\RB                  4S" j5       r"\S\RF                  4S# j5       r$\S\%\&   4S$ j5       r'\S\%\&   4S% j5       r(              SS&\S'\)RT                  \+\   -  \+\+\      -  \)RX                  -  \)RZ                  -  \)R\                  -  \)R^                  -  \)R`                  -  \)Rb                  -  S-  S(\S-  S)\)Rd                  \+\)Rd                     -  S-  S*\)Rf                  S-  S+\)Rh                  S-  S,\S-\S-  S.\\5\   -  \)Rl                  -  S/\\5\   -  S0\S-  S1\)Rn                  S-  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\)Rt                  4"S4 jjr;  SS&\S5\5\)Rx                     S2\)Rp                  S-  S\S-  S\
S\+\)Rt                     4S6 jjr=               SS&\S7\S'\)RT                  \+\   -  \+\+\      -  \)RX                  -  \)RZ                  -  \)R\                  -  \)R^                  -  \)R`                  -  \)Rb                  -  S-  S(\S-  S)\)Rd                  \+\)Rd                     -  S-  S*\)Rf                  S-  S+\)Rh                  S-  S,\S8\S.\\5\   -  \)Rl                  -  S/\\5\   -  S0\S-  S9\)R|                  S-  S1\)Rn                  S-  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\)R~                  4&S: jjr@       SS&\S*\)Rf                  S-  S,\S;\S(\S-  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\)R                  4S< jjrB       SS&\S*\)Rf                  S-  S,\S;\S(\S-  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\)R                  4S= jjrD         SS&\S>\)Rf                  S-  S,\S?\)R                  S-  S-\)RT                  S-  S.\\5\   -  \)Rl                  -  S/\\5\   -  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\\+\)R                     \)RT                  S-  4   4S@ jjrG     SS&\SA\)Rf                  S-  SB\S3\)Rr                  S-  S\S-  S2\)Rp                  S-  S\
S\)R                  4SC jjrI      SS&\SD\SE\)Rf                  S-  S,\SB\S\S-  S2\)Rp                  S-  S3\)Rr                  S-  S\
S\)R                  4SF jjrK    SS&\SG\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  SJ\)Rf                  S-  S\
S\)R                  4SK jjrO    SS&\SG\5\)R                     SH\SI\)R                  S-  S3\)Rr                  S-  SJ\)Rf                  S-  S\
S\)R                  4SL jjrQ   SS&\SM\5\   SG\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4SN jjrS     SS&\SO\5\)RT                     S.\\5\   -  \)Rl                  -  S/\\5\   -  S2\)Rp                  S-  S3\)Rr                  S-  S\S-  S\
S\+\)R                     4SP jjrT\USG\)R                  S\\R                  \Rr                  S-  4   4SQ j5       rV\USG\)R                  S3\)Rr                  S-  S\WR                  4SR j5       rX\USS\R                  S\+\RT                     4ST j5       rY\USG\)R                  S\\+\WR                     S-  \WRf                  S-  4   4SU j5       r[   SS&\SS\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4SV jjr\    SS&\SW\)R                  SG\)R                  SD\S-  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4SX jjr^   SS&\SW\)R                  SG\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4SY jjr_   SS&\SZ\5\   SG\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4S[ jjr`   SS&\SS\)R                  SH\SI\)R                  S-  S3\)Rr                  S-  S\
S\)R                  4S\ jjra  SS&\S]\5\)R                     SH\SI\)R                  S-  S\
S\+\)R                     4S^ jjrc SS_\5\)R                     S\S-  S\
S\4S` jjreS&\S\
S\)R                  4Sa jrgS\
S\)R                  4Sb jrhS\
S\)R                  4Sc jrjS&\S\
S\)R                  4Sd jrlS&\S\
S\4Se jrm         SS&\Sf\)R                  S-  Sg\)R                  S-  Sh\)R                  S-  Si\)R                  S-  Sj\)R                  S-  S\S-  Sk\s\\)R                  4   S-  Sl\)R                  S-  Sm\)R                  S-  S\
S\4Sn jjrv SS&\S\S-  S\
S\4So jjrw              SS&\Sh\)R                  \s\\)R                  4   -  S-  Sp\S-  Sq\S-  Sr\S-  Ss\S-  Si\)R                  S-  Sf\)R                  S-  St\)R                  S-  Sj\)R                  S-  S\S-  Sk\s\\)R                  4   S-  Su\)R                  S-  Sl\)R                  S-  Sm\)R                  S-  S\
S\4"Sv jjr|              SS&\Sh\)R                  \s\\)R                  4   -  S-  Sp\S-  Sq\S-  Sr\S-  Ss\S-  Si\)R                  S-  Sf\)R                  S-  St\)R                  S-  Sj\)R                  S-  S\S-  Sk\s\\)R                  4   S-  Su\)R                  S-  Sl\)R                  S-  Sm\)R                  S-  S\
S\4"Sw jjr}\S\~\   4Sx j5       r     SSy\S&\Sz\S{\S|\S-  SH\S3\)Rr                  S-  SJ\)Rf                  S-  SS4S} jjr       SS&\SG\\)GR                     S~\S{\S|\S-  Sz\SH\S3\)Rr                  S-  SJ\)Rf                  S-  S\
SS4S jjr         SS&\SM\	\\)R\                  4   \)R\                  -  \\)GR
                     -  SW\\	\
\
4      S-  SO\\)RT                     S-  S~\S{\S|\S-  Sz\SH\S3\)Rr                  S-  SJ\)Rf                  S-  S\
SS4S jjr    SS&\S\S\)GR                  S-  S\)GR                  S-  SH\SI\)R                  S-  S\
S\)R                  4S jjr  SS&\S\SH\SI\)R                  S-  S\
S\)R                  4S jjrS&\S\
S\+\)GR                     4S jr SS&\SH\S\
S\)GR                  S-  4S jjr SS&\S\SH\S\
S\S-  4
S jjrS\
S\+\)GR                     4S jrSSH\S\
S\)GR                  4S jjr SS\SH\S\
S\S-  4S jjr    SS&\S\S
\S-  S\S-  S\)GR"                  S-  SH\S\
S\S-  4S jjrS&\S\S\
S\+\)GR                     4S jr SS&\S\SH\S\
S\)GR                  S-  4
S jjr SS&\S\S\SH\S\
S\S-  4S jjr    SS&\S\S\S
\S-  S\S-  S\)GR"                  S-  SH\S\
S\S-  4S jjr     SS&\S\)GR.                  S\S-  Sq\S-  S\+\   S-  S\)GR0                  S-  S\S-  S\
S\4S jjr SS&\S\)GR.                  S\S-  S\
S\4
S jjrS\)GR6                  4S jr SS&\S\)GR:                  S\S-  S\
S\4
S jjrS\)GR>                  4S jrS\4S jr  SS\S\S-  S\S-  S\
S\4
S jjrS&\S\)GRF                  4S jrSrU =r$ )QdrantRemote+         Nurlport	grpc_portprefer_grpchttpsapi_keyprefixtimeouthostgrpc_optionsauth_token_providercheck_compatibility	pool_sizekwargsc                   > [         TU ]  " S40 UD6  X@l        X0l        U
=(       d    0 U l        Ub  UOUS LU l        U R
                  (       a  SOSU l        S U l        Ub  [        SU5      nXl        U=(       d    SU l	        [        U R                  5      S:  a'  U R                  S   S:w  a  SU R                   3U l	        Ub  U	b  [        SU SU	 35      eU	b7  U	R                  S	5      (       d  U	R                  S
5      (       a  [        S5      eU(       Ga+  UR                  S5      (       a  SU 3n[        U5      nUR                  UR                  sU l        U l        UR$                  (       a%  UR$                  S:H  U l        UR$                  U l        U R"                  (       a  U R"                  OUU l        U R                  (       a,  UR&                  (       a  [        SU SUR&                   35      eUR&                  (       a  UR&                  U l	        U R                  S;  a  [        SU R                   35      eOU	=(       d    SU l        X l        Ub  [(        R*                  " U5      OS nX`l        Xl        UR1                  SS 5      nUcR  U R                   S;   a  [2        R4                  " S SS9nOJU R                  b  [2        R4                  " U R                  S9nOU R                  b  [        SU SU 35      eUR1                  SS5      n/ U l        UR1                  S0 5      R9                  5        VVs0 s H	  u  nnUU_M     snnU l        UbJ  U R                  S:X  a  [=        S[>        SS9  X`R:                  S'   U R6                  RA                  SU45        [B        RD                  RG                  S5      n[H        RJ                  " 5       nS U S!U 3nUU R:                  S"'   UU R                  S#'   UR1                  S$S 5      nUb,  [M        U[N        5      (       d  [Q        S%[S        U5       35      eU[N        RT                  :X  a  [        S&5      eUU l+        U R"                  b  U R                    S'U R"                   3OU R                   nU R                   S(U 3n[Y        UU R                  5      U l-        U R:                  US).UEU l.        Ub  UU R\                  S'   Ub  UU R\                  S*'   UU l/        OU R`                  U l/        U R.                  bC  U R                  S:X  a  [=        S+[>        SS9  [c        U R.                  5      nUU R\                  S,'   [e        S4S-U RZ                  0U R\                  D6U l3        / U l4        S U l5        S U l6        S U l7        S U l8        SU l9        S U l:        S U l;        S U l<        S U l=        SU l>        S U l?        U(       a   [B        RD                  RG                  S5      n[        U RZ                  U R:                  U R\                  R                  S,5      5      U l?        U R~                  (       d  [=        S.[>        SS9  g [        UU R~                  5      (       d!  [=        S/U S0U R~                   S13[>        SS9  g g g s  snnf ! [         a$  n[        R                  " S2U S335         S nAg S nAff = f)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 )r9   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qdrant-clientzpython-client/z python/z
User-Agentzgrpc.primary_user_agent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://)headersrA   r1   z8Auth token provider is used with an insecure connection.authr2   zFailed to obtain server version. Unable to check client-server compatibility. Set check_compatibility=False to skip version check.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.zUnable to get server version: z!, server version defaults to None )F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_headersr   UserWarningappend	importlibrB   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_closedserver_versionr   getr   	Exceptionloggingdebug)selfr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   
parsed_urlru   r>   rA   kvclient_versionrm   
user_agentrH   addressbase_urlbearer_auther	__class__s                                U/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/qdrant_remote.pyrN   QdrantRemote.__init__/   s|   " 	"6"'#)/R$0egT6I"&++w6 '+ Ay)I'O|t||q T\\!_%;t||n-DL?t/J3%zZ^Y_`aa!;!;tz?Z?Z6 
 ~~k** 3%j'nJ%/__joo"DJ
  (//7:)00'+zztDJ||
 !U,z.?A  )||#44 #3DLL>!BCC 5 ,DJJ #*"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||v%J(  -4y)%%y'&:;"++33OD!002%n%5Xn=MN
+5<(8B45 06zz:Ld/S'
;K[0Y0Y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"""!*!3!3!;!;O!L&8MM4#5#5t7J7J67R'# ** !P!,#$	 '~t7J7JKK "88H I##'#6#6"7 8b!b "-#$ L _ SJ  4RD8YZ s%   Z-0A>Z3 /;Z3 3
[!=[[!returnc                     U R                   $ N)r   r   s    r   closedQdrantRemote.closed   s    ||    
grpc_gracec                 b   [        U S5      (       a=  [        U R                  5      S:  a$  U R                   H  n UR                  5         M      U R                  R                  5         SU l	        g ! [         a    [        S[        SS9   MW  f = f! [         a    [        S[        SS9   NCf = f)Nrx   r   zKUnable to close grpc_channel. Connection was interrupted on the server siderC   rD   zNUnable to close http connection. Connection was interrupted on the server sideT)
hasattrrW   rx   closeAttributeErrorr   RuntimeWarningrw   r   r   )r   r   r7   channels       r   r   QdrantRemote.close   s    4-..3t7N7N3ORS3S22MMO 3	%%' ! &   m!/#$  	h'	s#   A2B 2BBB.-B.c                     [        U 5      nUR                  UR                  UR                  UR                  4u  p#pEX#XE4$ r   )r   r\   r2   r+   r]   )r*   parse_resultr\   r2   r+   r0   s         r   
_parse_urlQdrantRemote._parse_url  sH    %cN	&
"d T))r   c                 L    U R                   b  U R                   $ U R                  $ )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.
)rT   DEFAULT_GRPC_POOL_SIZEr   s    r   _get_grpc_pool_size QdrantRemote._get_grpc_pool_size   s$     ??&??"...r   c                    U R                   (       a  [        S5      e / n[        U R                  5      S:X  a  [	        U R                  5       5       Hi  n[        U R                  U R                  U R                  U R                  U R                  U R                  U R                  S9nUR                  U5        Mk     Xl        g g ! [         a  n[        SU 35      eS nAff = f)Nz=Client was closed. Please create a new QdrantClient instance.r   )r2   r+   sslrB   optionscompressionr4   z+Error initializing the grpc connection(s): )r   RuntimeErrorrW   rx   ranger   r   rZ   rP   rR   re   rQ   rr   ra   ri   r   )r   channel_pool_r   es        r   _init_grpc_channelQdrantRemote._init_grpc_channel,  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                     U R                  5         U R                   Vs/ s H  n[        R                  " U5      PM     snU l        g s  snf r   )r   rx   r   
PointsStubry   r   r   s     r   _init_grpc_points_client%QdrantRemote._init_grpc_points_clientG  s?    !484K4K)
4KDOOG$4K)
% )
    Ac                     U R                  5         U R                   Vs/ s H  n[        R                  " U5      PM     snU l        g s  snf r   )r   rx   r   CollectionsStubrz   r   s     r   _init_grpc_collections_client*QdrantRemote._init_grpc_collections_clientM  sA    !9=9P9P.
9PgD  )9P.
* .
r   c                     U R                  5         U R                   Vs/ s H  n[        R                  " U5      PM     snU l        g s  snf r   )r   rx   r   SnapshotsStubr{   r   s     r   _init_grpc_snapshots_client(QdrantRemote._init_grpc_snapshots_clientS  sA    !7;7N7N,
7NGDw'7N,
( ,
r   c                     U R                  5         U R                   Vs/ s H  n[        R                  " U5      PM     snU l        g s  snf r   )r   rx   r   
QdrantStubr|   r   s     r   _init_grpc_root_client#QdrantRemote._init_grpc_root_clientY  s?    !484K4K'
4KDOOG$4K'
# '
r   c                 h    U R                   nU R                   S-   U R                  5       -  U l         U$ )Nr:   )r}   r   )r   current_indexs     r   _next_grpc_clientQdrantRemote._next_grpc_client_  s9    44((1,$$&('$ r   c                     U R                   c  U R                  5         U R                   c   eU R                   U R                  5          $ )zjgRPC client for collections methods

Returns:
    An instance of raw gRPC client, generated from Protobuf
)rz   r   r   r   s    r   grpc_collectionsQdrantRemote.grpc_collectionsf  sH     --5..011===11$2H2H2JKKr   c                     U R                   c  U R                  5         U R                   c   eU R                   U R                  5          $ )zegRPC client for points methods

Returns:
    An instance of raw gRPC client, generated from Protobuf
)ry   r   r   r   s    r   grpc_pointsQdrantRemote.grpc_pointsr  sH     ((0))+,,888,,T-C-C-EFFr   c                     U R                   c  U R                  5         U R                   c   eU R                   U R                  5          $ )zhgRPC client for snapshots methods

Returns:
    An instance of raw gRPC client, generated from Protobuf
)r{   r   r   r   s    r   grpc_snapshotsQdrantRemote.grpc_snapshots~  sH     ++3,,.//;;;//0F0F0HIIr   c                     U R                   c  U R                  5         U R                   c   eU R                   U R                  5          $ )zcgRPC client for info methods

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

Returns:
    An instance of raw REST API client, generated from OpenAPI schema
rw   r   s    r   restQdrantRemote.rest       """r   c                     U R                   $ r   r   r   s    r   r9   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                 2   U R                   (       Ga  Ub  [        R                  " U5      n[        U[        R
                  5      (       a  [        R                  " U5      /n[        U[        5      (       aG  U Vs/ s H:  n[        U[        R
                  5      (       a  [        R                  " U5      OUPM<     nn[        U[        R                  5      (       a  [        R                  " US9n[        U[        R                  5      (       a  [        R                  " U5      n[        U	[        [        R                  5      5      (       a  [        R                  " U	5      n	[        U
[        [        R                  5      5      (       a  [        R                   " U
5      n
[        U[        R"                  5      (       a  [        R$                  " U5      n[        U[        [        R&                  5      5      (       a  [        R(                  " U5      n[        U[        [        R*                  5      5      (       a  [        R,                  " U5      nU R.                  R1                  [2        R4                  " UUUUUUU
U	UUUUUUUS9Ub  UOU R6                  S9nUR8                   Vs/ s H  n[:        R<                  " U5      PM     nn[        R>                  " US9$ [        U[2        R                  5      (       a  [:        R                  " US9n[        U[2        R                  5      (       a  [:        R                  " U5      n[        U	[2        R@                  5      (       a  [:        RB                  " U	5      n	[        U[2        R"                  5      (       a  [:        R$                  " U5      n[        RD                  " UUUUUUUUUU
U	US9nU RF                  RH                  RK                  UUUUS9nUR8                  nUc   S5       eU$ s  snf s  snf )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)&rO   r   convert_queryrn   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   QueryPointsru   resultr   convert_scored_pointQueryResponseWithPayloadSelectorconvert_with_payload_selectorQueryRequestr9   
search_apiquery_points)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r7   preshitscored_pointsr   query_resultr  s                           r   r  QdrantRemote.query_points  sg   8  "007(FOO44&==hGH(D)) &% =Gq&//<Z<ZJ55a8`aa%  
 ,66)88|L-)<)<== * @ @ O,(;F<W<W(XYY)HHV,(;F<M<M(NOO)>>|L+v'<'<==(@@M+':6;Q;Q'RS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4)88|L-):):;; * @ @ O,(@(@AA)GGU+t':':;;(@@M"//,!#$ /()'M  99//<< /'+	 = L 3?2E2EF%='==%Mo^ Ys   ;AP* Prequestsc                 (   U R                   (       Ga#  U Vs/ s H:  n[        U[        R                  5      (       a  [        R
                  " Xa5      OUPM<     nn[        U[        [        R                  5      5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUS9Ub  UOU R                  S9nUR                   VVs/ s HF  n[        R                  " UR                   Vs/ s H  n[         R"                  " U5      PM     snS9PMH     snn$ U R$                  R&                  R)                  UUU[        R*                  " US9S9R                  n	U	c   S5       eU	$ s  snf s  snf s  snnf )N)r   r  r   r1   r   r   )searches)r   r   r1   query_request_batchzQuery batch returned None)rO   rn   r    r  r   convert_query_requestr   r	  r
  r   
QueryBatchr   QueryBatchPointsru   r  r  r   r  r9   r  query_batch_pointsQueryRequestBatch)
r   r   r  r   r1   r7   rgrpc_resr  http_ress
             r   r$  QdrantRemote.query_batch_points%  s     " "A "!V%8%899 44QH "   +':6;Q;Q'RS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   AF%$F	 F	)	F	Fgroup_by
group_sizewith_lookupc                    U R                   (       Ga,  Ub  [        R                  " U5      n[        U[        R
                  5      (       a  [        R                  " U5      /n[        U[        5      (       aG  U Vs/ s H:  n[        U[        R
                  5      (       a  [        R                  " U5      OUPM<     nn[        U[        R                  5      (       a  [        R                  " US9n[        U[        R                  5      (       a  [        R                  " U5      n[        U
[        [        R                  5      5      (       a  [        R                  " U
5      n
[        U[        [        R                  5      5      (       a  [        R                   " U5      n[        U[        R"                  5      (       a  [        R$                  " U5      n[        U[&        5      (       a  [(        R"                  " US9n[        U[        R*                  5      (       a  [        R,                  " U5      n[        U[        [        R.                  5      5      (       a  [        R0                  " U5      n[        U[        [        R2                  5      5      (       a  [        R4                  " U5      nU R6                  R9                  [(        R:                  " S0 SU_SU_SU_SU_SU_SU_S	U
_S
U_SU_SU_SU_SU	_SU_SU_SU_SU_SU_6Ub  UOU R<                  S9R>                  n[@        RB                  " U5      $ [        U[(        R                  5      (       a  [@        R                  " US9n[        U[(        R                  5      (       a  [@        R                  " U5      n[        U
[(        RD                  5      (       a  [@        RF                  " U
5      n
[        U[(        R*                  5      (       a  [@        R,                  " U5      n[        RH                  " UUUUUUUUUU	UU
UUS9nU RJ                  RL                  RO                  UUUUS9nUc   S5       eUR>                  $ s  snf )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 NonerL   )(rO   r   r   rn   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QueryPointGroupsru   r  r   convert_groups_resultr  r  QueryGroupsRequestr9   r  query_points_groups)r   r   r*  r   r   r   r   r   r   r+  r   r   r   r,  r   r   r   r1   r7   r  r  r   r  s                          r   r7   QdrantRemote.query_points_groupsT  s   <  "007(FOO44&==hGH(D)) &% =Gq&//<Z<ZJ55a8`aa%  
 ,66)88|L-)<)<== * @ @ O,(;F<W<W(XYY)HHV,(;F<M<M(NOO)>>|L+v'8'899(<<[I+s++"ooE+v'<'<==(@@M+':6;Q;Q'RSS(AA+N,.A&BYBY.Z[[%/%J%JK]%^"/3/?/?/K/K%% $3 & (	
   ". ". ) %4   &  * !, !, $  (:!" &1#& $+#6DMM) 0L 0* f+ , 33F;;,44)88|L-):):;; * @ @ O,(@(@AA)GGU+t':':;;(@@M"55,!#$ /!%()''M"  99//CC /'%2	 D L  +T-TT+&&&ys   ;AQ.samplec	                 R   U R                   (       Ga  [        U[        R                  5      (       a  [        R
                  " US9n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUUUUUS9Ub  UOU R                  S9n
[         R"                  " U
R$                  5      $ [        U[        R                  5      (       a  [         R
                  " US9nU R&                  R(                  R+                  UUU[        R,                  " UUUUUS9S9R$                  nUc   S5       eU$ )Nr   r   r   r9  r   r   r1   r   r   r   r   r   r9  r   r   r   r   r1   search_matrix_requestz(Search matrix pairs returned None result)rO   rn   r    r   r   r   r   r  r  r	  r
  r   SearchMatrixPairsr   SearchMatrixPointsru   r   convert_search_matrix_pairsr  rw   r  search_matrix_pairsSearchMatrixRequestr   r   r   r   r9  r   r   r   r1   r7   responsesearch_matrix_results               r   rB   QdrantRemote.search_matrix_pairs  s{    ,66)88|L,.A&BYBY.Z[[%/%J%JK]%^"+':6;Q;Q'RSS(AA+N''99''$3'!#%0'9	 $+#6DMM : H 99(//JJlDKK00%44<HL#22==QQ+#"("<"<,##	  R  
 & 	 $/[1[[/##r   c	                 R   U R                   (       Ga  [        U[        R                  5      (       a  [        R
                  " US9n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUUUUUS9Ub  UOU R                  S9n
[         R"                  " U
R$                  5      $ [        U[        R                  5      (       a  [         R
                  " US9nU R&                  R(                  R+                  UUU[        R,                  " UUUUUS9S9R$                  nUc   S5       eU$ )Nr   r;  r   r<  r=  z*Search matrix offsets returned None result)rO   rn   r    r   r   r   r   r  r  r	  r
  r   SearchMatrixOffsetsr   r@  ru   r   convert_search_matrix_offsetsr  rw   r  search_matrix_offsetsrC  rD  s               r   rK  "QdrantRemote.search_matrix_offsets  s{    ,66)88|L,.A&BYBY.Z[[%/%J%JK]%^"+':6;Q;Q'RSS(AA+N'';;''$3'!#%0'9	 $+#6DMM < H ;;HOOLLlDKK00%44<HL#22==SS+#"("<"<,##	  T  
 & 	 $/]1]]/##r   scroll_filterorder_byc                 R   U R                   (       GaU  [        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U[        R                  5      (       a  [
        R                  " US9n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U	[        [        R                  5      5      (       a  [
        R                   " U	5      n	[        U[        [        R"                  5      5      (       a  [
        R$                  " U5      nU R&                  R)                  [*        R,                  " UUUUUUUUU	U
S9
U
b  U
OU R.                  S9nUR0                   Vs/ s H  n[2        R4                  " U5      PM     snUR7                  S5      (       a!  [2        R8                  " UR:                  5      4$ S 4$ [        U[*        R<                  5      (       a  [2        R8                  " U5      n[        U[*        R                  5      (       a  [2        R                  " US9n[        U[*        R>                  5      (       a  [2        R@                  " U5      n[        U[*        RB                  5      (       a  [2        RD                  " U5      nU RF                  RH                  RK                  UU[        RL                  " UUUUUUU	S9U
S9R0                  nUc   S5       eURN                  UR:                  4$ s  snf )Nr   )
r   r   rN  r   r   r   r   r   r   r1   r   next_page_offset)r   r   rN  r   r   r   r   )r   r   scroll_requestr1   z&Scroll points API returned None result)(rO   rn   r   r    ExtendedPointIdr   convert_extended_point_idr   r   r  r  r  r  r	  r
  r  r  OrderByInterfaceconvert_order_by_interfacer   Scrollr   ScrollPointsru   r  r   convert_retrieved_pointHasFieldconvert_point_idrP  PointIdOrderByconvert_order_byr  r  rw   
points_apiscroll_pointsScrollRequestr   )r   r   rM  r   rN  r   r   r   r   r   r1   r7   r  pointscroll_results                  r   scrollQdrantRemote.scrollH  s    &"5f6L6L"MNN#==fE-77 * 9 9 N,(;F<W<W(XYY)HHV,(;F<M<M(NOO)>>|L+':6;Q;Q'RSS(AA+N,.A&BYBY.Z[[%/%J%JK]%^"($78O8O$PQQ%@@J'+'7'7'>'>!!$3(%!!-!-%0'9# $+#6DMM (? (C  LO::V:%J66u=:V<< 233 ++C,@,@A    &$,,//#44V<-55 * 9 9 N(DLL11%66x@,(@(@AA)GGU ##..<<$3 +#)#7#7,#!)%%1$0"4$ $ =  &   !,V.VV, '')G)GGGI Ws    N$count_filterexactc                 J   U R                   (       Ga  [        U[        R                  5      (       a  [        R
                  " US9n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUUUS9Ub  UOU R                  S9R                   n["        R$                  " U5      $ [        U[        R                  5      (       a  ["        R
                  " US9nU R&                  R(                  R+                  U[        R,                  " UUUS9UUS9R                   n	U	c   S5       eU	$ )Nr   )r   r   rf  r   r1   r   r   )r   rf  r   )r   count_requestr   r1   z!Count points returned None result)rO   rn   r    r   r   r   r   r  r  r	  r
  r   Countr   CountPointsru   r  r   convert_count_resultrw   r^  count_pointsCountRequest)
r   r   re  rf  r   r1   r   r7   rE  count_results
             r   countQdrantRemote.count  sw    ,66)88|L,.A&BYBY.Z[[%/%J%JK]%^"+':6;Q;Q'RSS(AA+N''--  $3''9#%0 $+#6DMM . 
 f  228<<lDKK00%44<HL**55BB+ --#,
 $ C 	
 & 	 'L)LL'r   keyfacet_filterc	                    U R                   (       Ga4  [        U[        R                  5      (       a  [        R
                  " US9n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUUUUUS9Ub  UOU R                  S9n
[         R"                  " U
R$                   Vs/ s H  n[&        R(                  " U5      PM     snS9$ [        U[        R                  5      (       a  [&        R
                  " US9nU R*                  R,                  R/                  UUU[        R0                  " UUUUUS9S9R2                  nUc   S5       eU$ s  snf )Nr   )r   rq  r   r   rf  r1   r   r   r   )hits)r   rq  r   r   rf  )r   r   r1   facet_requestz!Facet points returned None result)rO   rn   r    r   r   r   r   r  r  r	  r
  r   Facetr   FacetCountsru   typesFacetResponsert  r   convert_facet_value_hitrw   r^  facetFacetRequestr  )r   r   rq  rr  r   rf  r1   r   r   r7   rE  r  facet_results                r   r{  QdrantRemote.facet  s    ,66)88|L,.A&BYBY.Z[[%/%J%JK]%^"+':6;Q;Q'RSS(AA+N''--  $3'#%0'9	 $+#6DMM . H &&IQW#j88=W  lDKK00%44<HL**55;;+# --,#	 < 
 & 	 'L)LL') Xs   " Gr   waitorderingupdate_filterc                 
   U R                   (       GaO  [        U[        R                  5      (       a  [        R
                  " UR                  [        UR                  5      5      n[        [        UR                  5      5       V	s/ s Hl  n	[        R                  " [        R                  " UR                  U	   5      X   UR                  b#  [        R                  " UR                  U	   5      OS S9PMn     nn	[        U[        5      (       aG  U V
s/ s H:  n
[        U
[        R                  5      (       a  [        R                   " U
5      OU
PM<     nn
[        U[        R"                  5      (       a  [        R$                  " U5      n[        U['        [        R(                  5      5      (       a  [        R*                  " U5      n[        U[        R,                  5      (       a  [        R.                  " US9nU R0                  R3                  [        R4                  " UUUUUUS9U R6                  S9R8                  nUc   S5       e[:        R<                  " U5      $ [        U[        R,                  5      (       a  [:        R.                  " US9n[        U[        5      (       a\  U V
s/ s H:  n
[        U
[        R                  5      (       a  [:        R                   " U
5      OU
PM<     nn
[        R>                  " X%US9n[        U[        R                  5      (       a  [        R@                  " X%US9nU RB                  RD                  RG                  UUUUS9R8                  nUc   S5       eU$ s  sn	f s  sn
f s  sn
f )	N)idvectorspayloadr   r   r  r   r  r   r  r   Upsert returned None resultr   r   r  )batchr   r  )r   r  point_insert_operationsr  )$rO   rn   r    Batchr   convert_batch_vector_structr  rW   idsr   r   PointStructrS  payloadsconvert_payloadr   convert_point_structWriteOrderingconvert_write_orderingr   r  r  r   r   r   UpsertUpsertPointsru   r  r   convert_update_result
PointsListPointsBatchrw   r^  upsert_points)r   r   r   r  r  r   r  r7   vectors_batchidxra  grpc_resulthttp_results                r   upsertQdrantRemote.upsert  s&    &&,,//4>4Z4ZNNC

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

3P - 2  &: '66vs7KL!%  6   &$'' "( "( &eV-?-?@@ #77>"# "(   (F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"-77 * 9 9 N**11!!$3!%'9"/  2 
 f  *I,II*33K@@-55 * 9 9 N&$'' "( "( &eT-=-=>> #77>"# "(    **!} &&,,//++ m --88FF /(.!	 G 
 f  *I,II*WJs   A3M6AM;.AN c                    U R                   (       Ga1  U Vs/ s H  n[        R                  " U5      PM     nn[        U[        R
                  5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        R                  5      (       a  [        R                  " US9nU R                  R                  [        R                  " UUUUUUS9U R                   S9R"                  n	U	c   S5       e[$        R&                  " U	5      $ [        U[        R                  5      (       a  [$        R                  " US9nU R(                  R*                  R-                  UU[        R                  " UUUS9US9R"                  $ s  snf )Nr   r  r   r  r  )r   r  update_vectorsr  )rO   r   convert_point_vectorsrn   r    r  r  r   r  r  r   r   r   UpdateVectorsr   UpdatePointVectorsru   r  r   r  rw   r^  r  )
r   r   r   r  r  r   r  r7   ra  r  s
             r   r  QdrantRemote.update_vectorsj  s    KQR6%j66u=6FR(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"-77 * 9 9 N**88''$3!%'9"/  9 
 f  *I,II*33K@@-55 * 9 9 N&&11@@ /%33!0"/ 
 " A 	 f	9 Ss    F;r  c                    U R                   (       Ga  U R                  U5      u  pU=(       d    U	n[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      nU R                  R                  [        R                  " UU[        R                  " US9UUUS9U R                  S9R                   n
U
c   S5       e["        R$                  " U
5      $ U R'                  U5      u  pU R(                  R*                  R-                  UUU[/        [        R                  UUUUS9S9R                   $ )N)names)r   r  r  points_selectorr  r   r   z#Delete vectors returned None result)vectorr   r   r   )r   r  r  delete_vectors)rO   _try_argument_to_grpc_selectorrn   r    r  r   r  r   r  r  r   DeleteVectorsr   DeletePointVectorsVectorsSelectorru   r  r   r  '_try_argument_to_rest_points_and_filterrw   r^  r  r   )r   r   r  r   r  r  r   r7   r  opt_shard_key_selectorr  _points_filters                r   r  QdrantRemote.delete_vectors  sg    6:6Y6YZ`6a3O!3!M7M(F$8$89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G&&11@@ /!((("""0 	 A  fr   r  c                    U R                   (       Ga  [        U[        [        R                  5      5      (       a  [
        R                  " U5      nU V	s/ s HC  n	[        U	[        [        R                  5      5      (       a  [
        R                  " U	5      OU	PME     nn	[
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      nU R                  R                  [         R"                  " UUUUUUUS9Ub  UOU R$                  S9R&                  n
U
c   S5       eU
 Vs/ s H  n[(        R*                  " U5      PM     sn$ [        U[         R,                  5      (       a  [(        R.                  " U5      nU V	s/ s H:  n	[        U	[         R0                  5      (       a  [(        R2                  " U	5      OU	PM<     nn	U R4                  R6                  R9                  UU[        R:                  " UUUUS9US9R&                  nUc   S5       eU$ s  sn	f s  snf s  sn	f )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)rO   rn   r   r    r  r   r  rR  rS  r  r	  r
  r  r  r   Getr   	GetPointsru   r  r   rX  r  r  r[  rZ  rw   r^  
get_pointsPointRequest)r   r   r  r   r   r   r   r1   r7   r  r  recordr  s                r   retrieveQdrantRemote.retrieve  sf    ,(;F<W<W(XYY)HHV  C "#':6;Q;Q'RSS 88=    &::<HL+':6;Q;Q'RS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A)GGU C 6@T\\5R5R,,S1X[[  
 --88CC /'$11!- ,0	   D 
 f  *O,OO*o@ Us   A
I< J(AJc                    S n[        U[        5      (       ax  [        R                  " [        R                  " U Vs/ s HC  n[        U[        [        R                  5      5      (       a  [        R                  " U5      OUPME     snS9S9nXB4$ [        U[        R                  5      (       a  UnXB4$ [        U[        [        R                  5      5      (       aF  UR                  b   [        R                  " UR                  5      n[        R                  " U5      nXB4$ [        U[        R                  5      (       a/  [        R                  " [        [        R                   US95      nXB4$ [        U[        R                  5      (       a  [        R                  " US9nXB4$ [#        S[%        U5       35      es  snf )N)r  r   )r   "Unsupported points selector type: )rn   r   r   PointsSelectorPointsIdsListr   r    rR  r   rS  r   r   r  convert_points_selectorr   r   FilterSelectorrX   rp   )clsr   r   r  r  s        r   r  +QdrantRemote._try_argument_to_grpc_selector  s    "fd##"11)) $* $*C  *#/B6CYCY/Z[[ '@@E!$% $*	O4 22  3 344$O 22 )>)> ?@@+%/%J%J6K[K[%\"(@@HO 22 ..(@@&//?O 22	 ,,"11@O 22 A$v,PQQ/s   A
F=c                    [        U[        5      (       ab  U Vs/ s H:  n[        U[        R                  5      (       a  [        R
                  " U5      OUPM<     nn[        [        R                  UUS9nU$ [        U[        R                  5      (       a  [        R                  " U5      nX%l        U$ [        U[        [        R                  5      5      (       a
  UnX%l        U$ [        U[        R                  5      (       a  [        [        R                  XS9nU$ [        U[        R                  5      (       a/  [        [        R                  [        R                  " U5      US9nU$ [!        S[#        U5       35      es  snf )N)r   r   )r   r   r  )rn   r   r   r[  r   rZ  r   r    PointIdsListr  r  r   r   r   r  r   rX   rp   )r  r   r   r  r  r  s         r   _try_argument_to_rest_selector+QdrantRemote._try_argument_to_rest_selector:  se    fd## "!C 6@T\\5R5R,,S1X[[!   (##,O. %  3 344(@@HO(:%   )>)> ?@@$O(:%  ..'%%fO  ,,'%%!008,O  A$v,PQQ5s   AFr  c                 ~    UR                  S5      nUc  / $ [        X5      nUS:X  a  [        UR                  5      $ / $ )Npoints_selector_one_ofr   )
WhichOneofgetattrr   r  )r  r  namevals       r   _points_selector_to_points_list,QdrantRemote._points_selector_to_points_list^  sD     ))*BC<Io,8= 	r   c                    S nS n[        U[        5      (       aJ  U Vs/ s H:  n[        U[        R                  5      (       a  [        R
                  " U5      OUPM<     nnX#4$ [        U[        R                  5      (       ar  [        R                  " U5      n[        U[        R                  5      (       a  UR                  nX#4$ [        U[        R                  5      (       a  UR                  nX#4$ [        U[        R                  5      (       a  UR                  nX#4$ [        U[        R                  5      (       a  UR                  nX#4$ [        U[        R                  5      (       a  UnX#4$ [        U[        R                  5      (       a  [        R                  " U5      nX#4$ [        S[!        U5       35      es  snf )Nr  )rn   r   r   r[  r   rZ  r  r  r    r  r   r  r   r   r   rX   rp   )r  r   r  r  r  selectors         r   r  4QdrantRemote._try_argument_to_rest_points_and_filterl  s    fd## "!C 6@T\\5R5R,,S1X[[!  * #  3 344!99&AH(F$7$788"//  Hf&;&;<<"//   3 344mmG   5 566mmG  ..G  ,, //7G  A$v,PQQ's   AGc                    U R                   (       a  U R                  U5      u  p'U=(       d    Un[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        R                  " U R                  R                  [        R                  " UUUUUS9U R                   S9R"                  5      $ U R%                  X%5      nU R&                  R(                  R+                  UUUUS9R"                  nUc   S5       eU$ )Nr   r  r   r  r   r   )r   r  r  r  zDelete points returned None)rO   r  rn   r    r  r   r  r   r  r  r   r  r   Deleter   DeletePointsru   r  r  rw   r^  delete_points	r   r   r  r  r  r   r7   r  r  s	            r   deleteQdrantRemote.delete  sA    6:6Y6Y73O "4!M7M(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"33  ''%%(7!.!)+= !MM ( 	 &  #AAO 150C0C0N0N0\0\ / /!	 1] 1
 f  %D'DD%Mr   r  c                    U R                   (       a  U R                  U5      u  pU=(       d    U
n[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        R                  " U R                  R                  [        R                  " UU[
        R                   " U5      U	UUUS9U R"                  S9R$                  5      $ U R'                  U5      u  pU R(                  R*                  R-                  UUU[        R                  " UUUUUS9S9R$                  nUc   S5       eU$ )N)r   r  r  r  r  r   rq  r   )r  r   r   r   rq  r   r  r  set_payloadzSet payload returned None)rO   r  rn   r    r  r   r  r   r  r  r   r  r   
SetPayloadr   SetPayloadPointsr  ru   r  r  rw   r^  r  )r   r   r  r   rq  r  r  r   r7   r  r  r  r  r  s                 r   r  QdrantRemote.set_payload  sf    6:6Y6YZ`6a3O!3!M7M(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"33  ++))(7! * : :7 C(7!)+= !MM ,  &   $KKFSG040C0C0N0N0Z0Z /!"--#""0	 1[ 1 f  %B'BB%Mr   c                    U R                   (       a  U R                  U5      u  pU=(       d    U	n[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        R                  " U R                  R                  [        R                  " UU[
        R                   " U5      UUUS9U R"                  S9R$                  5      $ U R'                  U5      u  pU R(                  R*                  R-                  UUU[        R.                  " UU
UUS9S9R$                  nUc   S5       eU$ )N)r   r  r  r  r  r   r   )r  r   r   r   r  zOverwrite payload returned None)rO   r  rn   r    r  r   r  r   r  r  r   r  r   OverwritePayloadr   r  r  ru   r  r  rw   r^  overwrite_payloadr  )r   r   r  r   r  r  r   r7   r  r  r  r  r  s                r   r  QdrantRemote.overwrite_payload  s`    6:6Y6YZ`6a3O!3!M7M(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"33  11))(7! * : :7 C(7!)+= !MM 2 
 &   $KKFSG040C0C0N0N0`0` /!"--#""0		 1a 
1 f  %H'HH%Mr   keysc                    U R                   (       a  U R                  U5      u  pU=(       d    U	n[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        R                  " U R                  R                  [        R                  " UUUUUUS9U R                   S9R"                  5      $ U R%                  U5      u  pU R&                  R(                  R+                  UUU[        R                  " UU
UUS9S9R"                  nUc   S5       eU$ )N)r   r  r  r  r  r   r   )r  r   r   r   )r   r  r  delete_payloadzDelete payload returned None)rO   r  rn   r    r  r   r  r   r  r  r   r  r   DeletePayloadr   DeletePayloadPointsru   r  r  rw   r^  r  )r   r   r  r   r  r  r   r7   r  r  r  r  r  s                r   r  QdrantRemote.delete_payload  sU    6:6Y6YZ`6a3O!3!M7M(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"33  ..,,(7!!(7!)+= !MM / 
 &   $KKFSG040C0C0N0N0]0] /!%33""0	 	 1^ 
1 f  %E'EE%Mr   c                    U R                   (       a  U R                  U5      u  p'U=(       d    Un[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        R                  " U R                  R                  [        R                  " UUUUUS9U R                   S9R"                  5      $ U R%                  X%5      nU R&                  R(                  R+                  UUUUS9R"                  nUc   S5       eU$ )Nr  r   )r   r  r  r  zClear payload returned None)rO   r  rn   r    r  r   r  r   r  r  r   r  r   ClearPayloadr   ClearPayloadPointsru   r  r  rw   r^  clear_payloadr  s	            r   r  QdrantRemote.clear_payloadM  sA    6:6Y6Y73O "4!M7M(F$8$899%<<XF,.A&BYBY.Z[[%/%J%JK]%^"33  --++(7!.!)+= !MM . 	 &  #AAO 150C0C0N0N0\0\ /! /	 1] 1
 f  %D'DD%Mr   update_operationsc           	      Z   U R                   (       a  U Vs/ s H  n[        R                  " U5      PM     nn[        U[        R
                  5      (       a  [        R                  " U5      nU R                  R                  [        R                  " UUUUS9U R                  S9R                   Vs/ s H  n[        R                  " U5      PM     sn$ U R                  R                   R#                  UUU[        R$                  " US9S9R                  nUc   S5       eU$ s  snf s  snf )N)r   r  
operationsr  r   )r  )r   r  r  r  z!Batch update points returned None)rO   r   convert_update_operationrn   r    r  r  r   UpdateBatchr   UpdateBatchPointsru   r  r   r  rw   r^  batch_updateUpdateOperations)r   r   r  r  r  r7   	operationr  s           r   batch_update_points QdrantRemote.batch_update_points{  s9    Pa!Pa9
33I>Pa  ! (F$8$899%<<XF #..::**(7!#4!)	 !MM ;  &F 008  7;6I6I6T6T6a6a /!"("9"9EV"W	 7b 7
 f  %J'JJ%M7!s    D#2 D(change_aliases_operationsc                    U R                   (       a  U Vs/ s H:  n[        U[        R                  5      (       d  [        R
                  " U5      OUPM<     nnU R                  R                  [        R                  " UUS9Ub  US9R                  $ U R                  S9R                  $ U Vs/ s H:  n[        U[        R                  5      (       a  [        R
                  " U5      OUPM<     nnU R                  R                  R                  U[        R                   " US9S9R                  nUc   S5       eU$ s  snf s  snf )N)r1   actionsr   )r  )r1   change_aliases_operationzUpdate aliases returned None)rO   rn   r   AliasOperationsr   convert_alias_operationsr   UpdateAliasesChangeAliasesru   r  r   r9   aliases_apiupdate_aliasesr    ChangeAliasesOperation)r   r  r1   r7   r  r  r  s          r   update_collection_aliases&QdrantRemote.update_collection_aliases  sq     ";( ";I &i1E1EF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   AD>/AEc                    U R                   (       ay  U R                  R                  [        R                  " US9U R
                  S9R                  n[        R                  " U Vs/ s H  n[        R                  " U5      PM     snS9$ U R                  R                  R                  US9R                  nUc   S5       eU$ s  snf )Nr   r   aliasesz$Get collection aliases returned None)rO   r   ListCollectionAliasesr   ListCollectionAliasesRequestru   r  rx  CollectionsAliasesResponser   convert_alias_descriptionr9   r  get_collection_aliasesr  )r   r   r7   rE  descriptionr  s         r   r  #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                    U R                   (       az  U R                  R                  [        R                  " 5       U R
                  S9R                  n[        R                  " U Vs/ s H  n[        R                  " U5      PM     snS9$ U R                  R                  R                  5       R                  nUc   S5       eU$ s  snf )Nr   r  zGet aliases returned None)rO   r   ListAliasesr   ListAliasesRequestru   r  rx  r  r   r  r9   r  get_collections_aliasesr  r   r7   rE  r  r  s        r   get_aliasesQdrantRemote.get_aliases  s    ,,88'')4== 9 g  33YaYa+J88EYa  II!!99;BB 	 !>#>>!   ' Cc                    U R                   (       az  U R                  R                  [        R                  " 5       U R
                  S9R                  n[        R                  " U Vs/ s H  n[        R                  " U5      PM     snS9$ U R                  R                  R                  5       R                  nUc   S5       eU$ s  snf )Nr   )collectionszGet collections returned None)rO   r   Listr   ListCollectionsRequestru   r  rx  CollectionsResponser   convert_collection_descriptionr9   collections_apiget_collectionsr  r  s        r   r#  QdrantRemote.get_collections  s    ,,11++-t}} 2 k  ,, (0'/ ==kJ'/  II%%557>> 	 !B#BB!r  c                 >   U R                   (       aT  [        R                  " U R                  R	                  [
        R                  " US9U R                  S9R                  5      $ U R                  R                  R                  US9R                  nUc   S5       eU$ )Nr
  r   zGet collection returned None)rO   r   convert_collection_infor   r  r   GetCollectionInfoRequestru   r  r9   r"  get_collectionr   r   r7   r  s       r   r(  QdrantRemote.get_collection  s    55%%))11/R MM *  &	  /3ii.G.G.V.V+ /W /

& 	 !A#AA!r   c                 >   U R                   (       aJ  U R                  R                  [        R                  " US9U R
                  S9R                  R                  $ U R                  R                  R                  US9R                  nUc   S5       eUR                  $ )Nr
  r   zCollection exists returned None)rO   r   CollectionExistsr   CollectionExistsRequestru   r  existsr9   r"  collection_existsr)  s       r   r/  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_configrB   c                    U R                   (       Ga  [        U[        R                  5      (       a  [        R
                  " U5      n[        U[        R                  5      (       a  [        R                  " U5      n[        U[        5      (       a  [        R                  " U5      n[        U[        R                  5      (       a  [        R                  " U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        5      (       a  [        R                  " U5      n[        U	[        R                   5      (       a  [        R"                  " U	5      n	[        U
[        5      (       a  [        R$                  " U
5      n
U R&                  R)                  [*        R,                  " UUUUUUUU	UU
S9
Ub  US9R0                  $ U R.                  S9R0                  $ [        U[*        R                  5      (       a  [2        R
                  " U5      n[        U[*        R                  5      (       a  [2        R                  " U5      n[        U[*        R4                  5      (       a  [2        R                  " U5      n[        U[*        R                  5      (       a  [2        R                  " U5      n[        U[*        R                  5      (       a  [2        R                  " U5      nU R6                  R8                  R;                  U[        R,                  " UUUUUUU	U
S9US9R0                  nUc   S5       eU$ )N)
r   r1  r   r3  r4  r5  r6  r7  r1   rB   r   )r1  r   r  r4  r5  sparse_vectorsr7  rB   )update_collectionr1   zUpdate collection returned None)rO   rn   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   UpdateCollectionru   r  r   VectorsConfigDiffr9   r"  r:  )r   r   r1  r2  r3  r4  r5  r1   r6  r7  rB   r7   r  s                r   r:  QdrantRemote.update_collection  s    +V-H-HII$.$M$MN_$`!+V-H-HII$.$M$MN_$`!.$//!+!G!G!W+v'<'<==(AA+N-x8U8U/VWW&0&Q&Q''# /66(2(O(O))% ,f.E.EFF%/%J%JK]%^"(D))%55h?((//%%$3&7,#1 +(;*?'9#% $+#6 0  f =AMM 0  f  ')B)BCC * I IJ[ \')B)BCC * I IJ[ \nd&<&<=='CCNSNk4#6#677$==kJK)4+F+FGG","M"MNa"b"ii77II$55"3(&'$74#5!	  J 
 & 	 !D#DD!r   c                 8   U R                   (       aQ  U R                  R                  [        R                  " XS9Ub  US9R                  $ U R
                  S9R                  $ U R                  R                  R                  XS9R                  nUc   S5       eU$ )Nr   r1   r   zDelete collection returned None)
rO   r   r  r   DeleteCollectionru   r  r9   r"  delete_collection)r   r   r1   r7   r  s        r   rO  QdrantRemote.delete_collectionu  s     ((//%%oW#*#6 0  f<@MM 0  f
 #ii77II J 

& 	 !D#DD!r   shard_numberreplication_factorwrite_consistency_factoron_disk_payload
wal_configsharding_methodc                    U R                   (       Ga(  [        U[        R                  [        45      (       a  [
        R                  " U5      n[        U[        R                  5      (       a  [
        R                  " U5      n[        U[        R                  5      (       a  [
        R                  " U5      n[        U	[        R                  5      (       a  [
        R                  " U	5      n	[        U
[        [        R                  5      5      (       a  [
        R                  " U
5      n
[        U[        5      (       a  [
        R                   " U5      n[        U[        R"                  5      (       a  [
        R$                  " U5      n[        U[        R&                  5      (       a  [
        R(                  " U5      n[        U[        5      (       a  [
        R*                  " U5      n[,        R.                  " UUU	UUUUUUUU
UUUUS9nU R0                  R3                  UU R4                  S9R6                  $ [        U[,        R                  5      (       a  [8        R                  " U5      n[        U[,        R                  5      (       a  [8        R                  " U5      n[        U	[,        R                  5      (       a  [8        R                  " U	5      n	[        U
[,        R                  5      (       a  [8        R                  " U
5      n
[        R.                  " UUUUUUUU	U
UUUUS9nU R:                  R<                  R?                  UUUS9R6                  nUc   S5       eU$ )N)r   r4  rU  r1  rQ  rT  r1   r3  rR  rS  r5  r6  rV  r7  rB   r   )r  rQ  rR  rS  rT  r4  r1  rU  r5  r9  rV  r7  rB   )r   create_collectionr1   zCreate collection returned None) rO   rn   r    VectorParamsr?  r   convert_vectors_configrA  rB  r;  r<  WalConfigDiffconvert_wal_config_diffr   QuantizationConfigconvert_quantization_configrE  ShardingMethodconvert_sharding_methodrF  rG  r  r   CreateCollectionr   Createru   r  r   r9   r"  rX  )r   r   r3  rQ  rR  rS  rT  r4  r1  rU  r5  r1   r6  rV  r7  rB   r7   rX  create_collection_requestr  s                       r   rX  QdrantRemote.create_collection  s   & .6+>+>*EFF!+!B!B>!R+v'<'<==(AA+N+V-H-HII$.$M$MN_$`!*f&:&:;;'??
K
#223  '1&L&LM`&a#/66(2(O(O))% /6+@+@AA","D"D_"U,f.E.EFF%/%J%JK]%^"(D))%55h? $ 5 5 /'%"3) /-#5)A$7&; /#5!!" ((//0A4==/Y```k4#6#677$==kJK')B)BCC * I IJ[ \j$"4"455#;;JGJ)4+B+BCC","H"HI\"]$*$;$;"%1%=+#/! 30+1%
!  #ii77II+7 J 
 &	 	 !D#DD!r   c                 Z    U R                  XS9  U R                  UUUUUUUUU	U
UUUUUS9$ )Nr   )r   r3  rQ  rR  rS  rT  r4  r1  rU  r5  r1   r6  rV  r7  rB   )rO  rX  )r   r   r3  rQ  rR  rS  rT  r4  r1  rU  r5  r1   r6  rV  r7  rB   r7   s                    r   recreate_collection QdrantRemote.recreate_collection  sZ    & 	@%%+)%1%=+#/! 3"7+1 & 
 	
r   c                 <    U R                   (       a  [        $ [        $ r   )rO   r"   r#   r   s    r   _updater_classQdrantRemote._updater_class  s    $$$$r   batches_iteratormax_retriesparallelmethodc	                 J   Ub*  U[        5       ;   a  Un	O+[        SU S[        5        35      eS[        5       ;   a  SOSn	U R                  (       aK  UU R                  U R                  UU R
                  U R                  UUU R                  U R                  US.n
OUU R                  UUUUS.U R                  En
US:X  a5  U R                  R                  " S	0 U
D6nUR                  U5       H  nM     g [        X@R                  U	S9nUR                  " U40 U
D6 H  nM     g )
NzStart methods z& is not available, available methods: 
forkserverspawn)r   r2   r+   rl  r   rB   r  r   r   r1   r  )r   urirl  r  r   r  r:   )start_methodrL   )r   rX   rO   rZ   rP   rR   re   rQ   ru   rs   rt   ri  startprocessr!   unordered_map)r   rk  r   rl  rm  rn  r  r   r  rs  updater_kwargsupdaterr   pools                 r   _upload_collectionQdrantRemote._upload_collection  s:    .00% $VH,RShSjRkl  ,8;P;R+R<X_L#2

*{{ ..&8--==!.N $3}}*&8!. //N q=))//A.AG__%56 7 &h0C0CR^_D''(8KNK Lr   
batch_sizec
                 b    U R                   R                  X#S9nU R                  UUUUUUUU	S9  g )N)recordsr|  rk  r   rl  rm  rn  r  r   r  )ri  iterate_records_batchesrz  )r   r   r   r|  rm  rn  rl  r  r   r  r7   rk  s               r   upload_pointsQdrantRemote.upload_pointsU  sQ      ..FF G 
 	-+#1' 	  		
r   c                 h    U R                   R                  UUUUS9nU R                  UUUUUU	U
US9  g )N)r  r  r  r|  r  )ri  iterate_batchesrz  )r   r   r  r  r  r|  rm  rn  rl  r  r   r  r7   rk  s                 r   upload_collectionQdrantRemote.upload_collectionq  sY      ..>>!	 ? 
 	-+#1' 	  		
r   
field_namefield_schema
field_typec           	         Ub  [        S[        SSS9  UnU R                  (       Ga4  S n[        U[        R
                  5      (       a  [        R                  " U5      n[        U[        5      (       a*  [        R                  " [        R
                  " U5      5      n[        U[        5      (       a  [        U5      n[        U[        [        R                  5      5      (       a  [        R                  " U5      n[        U[        R                  5      (       Ga  UnUR!                  S5      n	[#        X5      n
[        U
[        R$                  5      (       a  [        R&                  R(                  n[        U
[        R*                  5      (       a  [        R&                  R,                  n[        U
[        R.                  5      (       a  [        R&                  R0                  n[        U
[        R2                  5      (       a  [        R&                  R4                  n[        U
[        R6                  5      (       a  [        R&                  R8                  n[        U
[        R:                  5      (       a  [        R&                  R<                  n[        U
[        R>                  5      (       a  [        R&                  R@                  n[        U
[        RB                  5      (       a  [        R&                  RD                  n[        RF                  " UUUUUUS9n[H        RJ                  " U RL                  RO                  XRP                  S9RR                  5      $ [        U[        5      (       a  [H        R                  " U5      n[        U[        R                  5      (       a  [H        R                  " U5      nU RT                  RV                  RY                  U[        RN                  " X#S9UUS	9RR                  nUc   S
5       eU$ )Nz2field_type is deprecated, use field_schema insteadr(   zpayload-index-field-type)rE   rF   rG   r  index_params)r   r  r  field_index_paramsr  r  r   )r  r  )r   create_field_indexr  r  z Create field index returned None)-r   DeprecationWarningrO   rn   r    PayloadSchemaTyper   convert_payload_schema_typer2  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   CreateFieldIndexru   r  rw   indexes_apir  )r   r   r  r  r  r  r  r7   r  r  r  requestr  s                r   create_payload_index!QdrantRemote.create_payload_index  s    !L+.	 &L!%,(@(@AA)EElS,,,)EE,,\:  ,,,
  AN,1K1K(LMM)GGU,(?(?@@%1")44^D&'9@lD,@,@AA#'>>#?#?LlD,C,CDD#'>>#B#BLlD,C,CDD#'>>#B#BLlD,A,ABB#'>>#@#@LlD,?,?@@#'>>#>#>LlD,@,@AA#'>>#?#?LlD,D,DEE#'>>#C#CLlD,@,@AA#'>>#?#?L55 /%'#5!G 33  11'==1QXX  lC((%AA,OLlD$;$;<<%CCLQL,0,?,?,K,K,^,^+%66%   -_ -
 & 	 !E#EE!r   c                 L   U R                   (       aX  [        R                  " UUUUS9n[        R                  " U R
                  R                  X`R                  S9R                  5      $ U R                  R                  R                  UUUUS9R                  nUc   S5       eU$ )N)r   r  r  r  r   z Delete field index returned None)rO   r   DeleteFieldIndexCollectionr   r  r   DeleteFieldIndexru   r  rw   r  delete_field_index)r   r   r  r  r  r7   r  r  s           r   delete_payload_index!QdrantRemote.delete_payload_index  s     55 /%!	G 33  11'==1QXX  -1,?,?,K,K,^,^+!	 -_ -

 & 	 !E#EE!r   c                 n   U R                   (       ag  U R                  R                  [        R                  " US9U R
                  S9R                  nU Vs/ s H  n[        R                  " U5      PM     sn$ U R                  R                  R                  US9R                  nUc   S5       eU$ s  snf )Nr
  r   'List snapshots API returned None result)rO   r   r  r   ListSnapshotsRequestru   snapshot_descriptionsr   convert_snapshot_descriptionrw   snapshots_apilist_snapshotsr  )r   r   r7   	snapshotssnapshots        r   r  QdrantRemote.list_snapshots	  s     ++00))/JTXTaTa 1 ##  W``V_(J;;HEV_``''55DD+ E 

& 	 $O&OO$ as    B2c                 *   U R                   (       aV  U R                  R                  [        R                  " US9U R
                  S9R                  n[        R                  " U5      $ U R                  R                  R                  XS9R                  $ )Nr
  r   )r   r  )rO   r   rb  r   CreateSnapshotRequestru   snapshot_descriptionr   r  rw   r  create_snapshotr  )r   r   r  r7   r  s        r   r  QdrantRemote.create_snapshot	  s     **11**?KUYUbUb 2 ""  ::8DD""00@@+ A 

&	r   snapshot_namec                     U R                   (       a7  U R                  R                  [        R                  " XS9U R
                  S9  gU R                  R                  R                  UUUS9R                  $ )N)r   r  r   T)r   r  r  )
rO   r   r  r   DeleteSnapshotRequestru   rw   r  delete_snapshotr  )r   r   r  r  r7   s        r   r  QdrantRemote.delete_snapshot*	  sz     &&**$3 	 '  ""00@@+' A 
 &		r   c                 r   U R                   (       ah  U R                  R                  [        R                  " 5       U R
                  S9R                  nU Vs/ s H  n[        R                  " U5      PM     sn$ U R                  R                  R                  5       R                  nUc   S5       eU$ s  snf )Nr   z,List full snapshots API returned None result)rO   r   ListFullr   ListFullSnapshotsRequestru   r  r   r  rw   r  list_full_snapshotsr  )r   r7   r  r  s       r   r   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    B4c                 ,   U R                   (       aW  U R                  R                  [        R                  " 5       U R
                  S9R                  n[        R                  " U5      $ U R                  R                  R                  US9R                  $ )Nr   )r  )rO   r   
CreateFullr   CreateFullSnapshotRequestru   r  r   r  rw   r  create_full_snapshotr  )r   r  r7   r  s       r   r  !QdrantRemote.create_full_snapshotH	  s|    #'#6#6#A#A..0$-- $B $"" ! ::;OPP""00EE4EPWWWr   c                     U R                   (       a7  U R                  R                  [        R                  " US9U R
                  S9  gU R                  R                  R                  XS9R                  $ )N)r  r   T)r  r  )
rO   r   
DeleteFullr   DeleteFullSnapshotRequestru   rw   r  delete_full_snapshotr  )r   r  r  r7   s       r   r  !QdrantRemote.delete_full_snapshotQ	  sm     **..]K +  ""00EE' F 

&	r   locationchecksumpriorityc                     U R                   R                  R                  UU[        R                  " UUUUS9S9R
                  $ )Nr  r  r  r/   )r   r  snapshot_recover)rw   r  recover_from_snapshotr    SnapshotRecoverr  )r   r   r  r/   r  r  r  r7   s           r   recover_snapshotQdrantRemote.recover_snapshot_	  sP     ""00FF+#33!!!	 G 	
 &		r   shard_idc                 v    U R                   R                  R                  UUS9R                  nUc   S5       eU$ )N)r   r  r  )rw   r  list_shard_snapshotsr  )r   r   r  r7   r  s        r   r  !QdrantRemote.list_shard_snapshotst	  sP     ''55JJ+ K 
 & 	 $O&OO$r   c                 `    U R                   R                  R                  UUUS9R                  $ )N)r   r  r  )rw   r  create_shard_snapshotr  )r   r   r  r  r7   s        r   r  "QdrantRemote.create_shard_snapshot~	  s9     ""00FF+ G 
 &		r   c                 b    U R                   R                  R                  UUUUS9R                  $ )N)r   r  r  r  )rw   r  delete_shard_snapshotr  )r   r   r  r  r  r7   s         r   r  "QdrantRemote.delete_shard_snapshot	  s<     ""00FF+'	 G 

 &	r   c                     U R                   R                  R                  UUU[        R                  " UUUUS9S9R
                  $ )Nr  )r   r  r  shard_snapshot_recover)rw   r  recover_shard_from_snapshotr    ShardSnapshotRecoverr  )	r   r   r  r  r/   r  r  r  r7   s	            r   recover_shard_snapshot#QdrantRemote.recover_shard_snapshot	  sS     ""00LL+#)#>#>!!!	$	 M 

 &
	r   r   shards_number	placementinitial_statec                    U R                   (       a  [        U[        [        R                  5      5      (       a  [
        R                  " U5      n[        U[        R                  5      (       a  [
        R                  " U5      nU R                  R                  [        R                  " UU[        R                  " UUUU=(       d    / US9S9Ub  US9R                  $ U R                  S9R                  $ U R                  R                   R#                  UU[        R$                  " UUUUUS9S9R                  n	U	c   S5       eU	$ )N)r   r  rR  r  r  r   r1   r  r   )r   r1   create_sharding_keyzCreate shard key returned None)rO   rn   r   r    ShardKeyr   convert_shard_keyReplicaStateconvert_replica_stater   CreateShardKeyr   CreateShardKeyRequestru   r  rw   distributed_apicreate_shard_keyCreateShardingKey)
r   r   r   r  rR  r  r  r1   r7   r  s
             r   r  QdrantRemote.create_shard_key	  sE    )%8%IJ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           
         U R                   (       a  [        U[        [        R                  5      5      (       a  [
        R                  " U5      nU R                  R                  [        R                  " UU[        R                  " US9S9Ub  US9R                  $ U R                  S9R                  $ U R                  R                  R                  UU[        R                   " US9S9R                  nUc   S5       eU$ )N)r   r  r   )r   r1   drop_sharding_keyzDelete shard key returned None)rO   rn   r   r    r  r   r  r   DeleteShardKeyr   DeleteShardKeyRequestru   r  rw   r  delete_shard_keyDropShardingKey)r   r   r   r1   r7   r  s         r   r  QdrantRemote.delete_shard_key	  s    )%8%IJ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                    U R                   (       aM  U R                  R                  [        R                  " 5       U R
                  S9n[        R                  " U5      $ U R                  R                  R                  5       nUc   S5       eU$ )Nr   zHealthcheck returned None)rO   r   HealthCheckr   HealthCheckRequestru   r   convert_health_check_replyr   service_apiroot)r   version_infos     r   infoQdrantRemote.info	  sy    >>55'')4== 6 L 88FFyy,,113'D)DD'r   cluster_operationc                    U R                   (       Ga  [        R                  " U5      n0 n[        U[        R
                  5      (       a  X%S'   GO
[        U[        R                  5      (       a  X%S'   O[        U[        R                  5      (       a  X%S'   O[        U[        R                  5      (       a  X%S'   O[        U[        R                  5      (       a  X%S'   Oz[        U[        R                  5      (       a  X%S'   OV[        U[        R                  5      (       a  X%S'   O2[        U[        R                  5      (       a  X%S'   O[        S	U 35      eU R                  R                  [        R                   " SXS
.UD6Ub  US9R$                  $ U R"                  S9R$                  $ U R&                  R(                  R+                  XUS9R$                  nUc   S5       eU$ )N
move_shardreplicate_shardabort_transferdrop_replicar  r  restart_transferreplicate_pointszUnknown cluster operation: rM  r   )r   cluster_operationsr1   z'Cluster collection update returned NonerL   )rO   r   convert_cluster_operationsrn   r   	MoveShardReplicateShardAbortShardTransferReplicar  r  RestartTransferReplicatePointsro   r   UpdateCollectionClusterSetup#UpdateCollectionClusterSetupRequestru   r  r   r  update_collection_cluster)r   r   r  r1   r7   grpc_operationupdate_results          r   cluster_collection_update&QdrantRemote.cluster_collection_update
  s     * E EFW XN+T^^<</@|,-t/B/BCC4E01-t/F/FGG3D/0-t||<<1B~.-t/B/BCC5F12-t/B/BCC5F12-t/C/CDD5F12-t/C/CDD5F12"=>O=P QRR((EE88 $3HV $+#6	 F 
 f =AMM	 F 
 f 		11KK+[b L 

& 	 (S*SS(r   c                 v    U R                   R                  R                  5       R                  nUc   S5       eU$ )NzCluster status returned None)r   r  cluster_statusr  )r   status_results     r   r'  QdrantRemote.cluster_status0
  s8    		11@@BII(H*HH(r   c                 v    U R                   R                  R                  5       R                  nUc   S5       eU$ )Nz"Recover current peer returned None)r   r  recover_current_peerr  )r   recover_results     r   r+  !QdrantRemote.recover_current_peer6
  s8    22GGIPP)O+OO)r   peer_idforcec                 x    U R                   R                  R                  UUUS9R                  nUc   S5       eU$ )N)r.  r/  r1   zRemove peer returned None)r   r  remove_peerr  )r   r.  r/  r1   r7   r#  s         r   r1  QdrantRemote.remove_peer<
  sP     		11== > 
 &	 	
 (E*EE(r   c                 .   U R                   (       aL  U R                  R                  [        R                  " US9U R
                  S9n[        R                  " U5      $ U R                  R                  R                  US9R                  nUc   S5       eU$ )Nr
  r   z%Collection cluster info returned None)rO   r   CollectionClusterInfor   CollectionClusterInfoRequestru   r   convert_collection_cluster_infor   r  collection_cluster_infor  )r   r   collection_infos      r   r7  $QdrantRemote.collection_cluster_infoL
  s    "33II11/R J O ==oNN))33KK+ L 

& 	 *S,SS*r   )r   r~   r   r   r`   ra   r   rx   r}   rz   rr   re   rQ   ry   rP   r|   r{   rZ   rR   rT   r[   rO   rV   rt   rg   rS   ru   rw   rs   r   )Ni  i  FNNNNNNNTNr   )r   N)NNNNN
   NTFNNNNN)NN)NNNNNr:  r)   TFNNNNNN)Nr)   r:  NNNN)	Nr:  NNTFNNN)NTNNN)Nr:  FNNN)TNNN)TNN)TFNNN)NTNN)TN)	NNNNNNNNN)NNNNNNNNNNNNNN)r:   NFNN)@   r:   Nr)   FNN)	NNr;  r:   Nr)   FNN)NNTN)T)NNNT)NNNNN)__name__
__module____qualname____firstlineno__rv   r   r2  r  boolr?  r   r   r   rN   propertyr   floatr   staticmethodtupler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   rx  r[  r   SparseVectorr  
NumpyArrayDocumentImageInferenceObjectr   r   r  r	   PayloadSelectorr  r	  r  r  r  r  r$  WithLookupInterfaceGroupsResultr7  SearchMatrixPairsResponserB  SearchMatrixOffsetsResponserK  r\  Recordrc  CountResultro  ry  r{  Pointsr  UpdateResultr  PointVectorsr  r  r  r  classmethodr  r    r  r  rR  r  r  Payloadr  r  r  r  UpdateOperationr  r   r  r  r  r  r   r#  CollectionInfor(  r/  r;  r=  rJ  rA  rC  r   SparseVectorParamsrF  r:  rO  rY  r[  r]  r_  rX  rf  r
   r$   ri  r   rz  r  r  VectorStructr  r  r  r  SnapshotDescriptionr  r  r  r  r  r  SnapshotPriorityr  r  r  r  r  r  r  r  r  VersionInfor  ClusterOperationsr$  ClusterStatusr'  r+  r1  r4  r7  __static_attributes____classcell__)r   s   @r   r&   r&   +   s    !!"!".2W[$( $I4ZI DjI 	I
 I d{I tI d
I tI DjI 38nt+I &b#g."in:L1MMPTTI "I :I I IV    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ZZ Z 	Z
 %%,Z "22T9Z ||d*Z Z 
		Z@ /3<@-100 ++,0 	0
 %%,0 "22T90 ||d*0 0 
		0n /3<@22 #2 $$	2
 2 %%,2 "22T92 2 
		2p 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, , 
		,f /3<@22 2 $$	2
 4Z2 2 %%,2 "22T92 2 
		2r /3<@// / $$	/
 / %%,/ "22T9/ / 
		/l /3<@.. sm. $$	.
 . %%,. "22T9. . 
		.h /3<@,, --, 	,
 %%,, "22T9, , 
		,d /3$$ $E$9$9:$ 	$
 %%,$ $ 
e  	!$R #&#+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5"5 5 	5
 5 d
5 5 "22T95 ||d*5 
5v !<@-1

 **+
 	

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

 emm$t+
 
 
 d

 
 
 "22T9
 ||d*
 
 

J 8<59/3^^ ^ --4	^
 ++d2^ ^ %%,^ ^ 
		^H /3  	
 %%,  
		8".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  r   r&   )=importlib.metadatarj   r   r^   rl   multiprocessingr   typingr   r   r   r   r   r	   r
   r   rc   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   rx  &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&   rL   r   r   <module>ru     sx        1	 	 	   '   P & 4 ) 0 P 0 ; F 
 ; : ? B B 8l(: l(r   