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

7E*17J1K1Q1Q1ST1Sv1ad1ST%mmo
U*/""3'""))3,7 . ||v%J(  dFXFXYFX2B;[I-FXYZ 2 22!~( 
 -4Dy)%%y'&:;"++33OD!002%n%5Xn=MN
4---pq{p||~ #(A\(Q^_i^jjlm$
 ,6<(8B45/5zz:Ld/S'<Lk1Z^_cdt_u^vw  {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#9B :
:
"&//:
 79FJ%PT*LP(DH#,-$"00MM&&OO''/MM	 	 eg ] U Zs   ;Z Z&
rx   rest_headersrL   returnc                    	 t         j                  j                  d      }t        | |||      }|st	        dt
        d       y t        ||      st	        d| d| dt
        d       y y # t        $ r t	        dt
        d       Y y w xY w)NrI   zFailed to obtain server version. Unable to check client-server compatibility. Set check_compatibility=False to skip version check.   rE   zQdrant client version z% is incompatible with server version z. Major versions should match and minor version difference must not exceed 1. Set check_compatibility=False to skip version check.)ro   rC   rp   r   r   rm   r   	Exception)rx   r   rL   r1   r   server_versions         r   r   z&AsyncQdrantRemote._check_compatibility   s    	&//77HN/,gVN! a( 
 #>>B4^4DDijxiy  z|  }(  C  	 ]$	s   AA+ %A+ +B	B	c                     | j                   S N)r   r   s    r   closedzAsyncQdrantRemote.closed   s    ||    
grpc_gracec                   K   t        | d      rDt        | j                        dkD  r,| j                  D ]  }	 |j                  |       d {     	 | j                  j                          d {    d| _        y 7 1# t        $ r t        dt        d       Y jt        $ r Y tw xY w7 9# t        $ r t        dt        d       Y d| _        y w xY ww)	Nr}   r   )gracezKUnable to close grpc_channel. Connection was interrupted on the server siderD   rE   zNUnable to close http connection. Connection was interrupted on the server sideT)hasattrr[   r}   closeAttributeErrorr   rm   RuntimeErrorr:   acloser   r   )r   r   r8   channels       r   r   zAsyncQdrantRemote.close   s     4-.3t7N7N3ORS3S22	!--j-999 3	))""$$$ # :%   m!,#$
 $  % 	h$
 	s|   4CB A>B CB- 1B+2B- 6C>B  B(CB(%C'B((C+B- -C	CCCc                     t        |       }|j                  |j                  |j                  |j                  f\  }}}}||||fS r   )r   r`   r2   r+   ra   )r*   parse_resultr`   r2   r+   r0   s         r   
_parse_urlzAsyncQdrantRemote._parse_url  sP    %cN	(
$tV dF++r   c                 J    | j                   | j                   S | j                  S )z
        Returns the pool size to use for GRPC connection pool.
        This method should be preferred over accessing `self._pool_size` directly as it applies the
        default value if no pool_size was provided.
        )rX   DEFAULT_GRPC_POOL_SIZEr   s    r   _get_grpc_pool_sizez%AsyncQdrantRemote._get_grpc_pool_size  s$     ??&??"...r   c           
         | j                   rt        d      	 g }t        | j                        dk(  rt	        | j                               D ]k  }t        | j                  | j                  | j                  | j                  | j                  | j                  | j                        }|j                  |       m || _        y y # t        $ r}t        d|       d }~ww xY w)Nz=Client was closed. Please create a new QdrantClient instance.r   )r2   r+   sslrC   optionscompressionr4   z+Error initializing the grpc connection(s): )r   r   r[   r}   ranger   get_channelr^   rT   rV   ri   rU   rw   re   rl   r   )r   channel_poolr   r   es        r   _init_grpc_channelz$AsyncQdrantRemote._init_grpc_channel  s    <<^__	RL4**+q0t779:A)!ZZ!__ KK!%!3!3 $ 2 2$($:$:,0,E,EG !''0 ; +7' 1  	R!LQCPQQ	Rs   B(C 	CCCc                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   
PointsStubr~   r   r   s     r   _init_grpc_points_clientz*AsyncQdrantRemote._init_grpc_points_client1  s?    !484K4K)
4KDOOG$4K)
% )
   Ac                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   CollectionsStubr   r   s     r   _init_grpc_collections_clientz/AsyncQdrantRemote._init_grpc_collections_client7  sA    !9=9P9P.
9PgD  )9P.
* .
r   c                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   SnapshotsStubr   r   s     r   _init_grpc_snapshots_clientz-AsyncQdrantRemote._init_grpc_snapshots_client=  sA    !7;7N7N,
7NGDw'7N,
( ,
r   c                     | j                          | j                  D cg c]  }t        j                  |       c}| _        y c c}w r   )r   r}   r   
QdrantStubr   r   s     r   _init_grpc_root_clientz(AsyncQdrantRemote._init_grpc_root_clientC  s?    !484K4K'
4KDOOG$4K'
# '
r   c                 h    | j                   }| j                   dz   | j                         z  | _         |S )Nr;   )r   r   )r   current_indexs     r   _next_grpc_clientz#AsyncQdrantRemote._next_grpc_clientI  s9    44((1,$$&('$ r   c                     | j                   | j                          | j                   J | j                   | j                            S )zgRPC client for collections methods

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

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

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

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

        Returns:
            An instance of raw REST API client, generated from OpenAPI schema
        r|   r   s    r   restzAsyncQdrantRemote.rest       """r   c                     | j                   S r   r   r   s    r   r:   zAsyncQdrantRemote.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                   K   | j                   r|t        j                  |      }t        |t        j
                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j
                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        t        j                              rt        j                  |	      }	t        |
t        t        j                              rt        j                   |
      }
t        |t        j"                        rt        j$                  |      }t        |t        t        j&                              rt        j(                  |      }t        |t        t        j*                              rt        j,                  |      }| j.                  j1                  t3        j4                  |||||||
|	|||||||      ||n| j6                         d {   }|j8                  D cg c]  }t;        j<                  |       }}t	        j>                  |      S t        |t2        j                        rt;        j                  |      }t        |t2        j                        rt;        j                  |      }t        |	t2        j@                        rt;        jB                  |	      }	t        |t2        j"                        rt;        j$                  |      }t	        jD                  ||||||||||
|	|      }| jF                  jH                  jK                  ||||       d {   }|j8                  }|J d       |S c c}w 7 rc c}w 7 (w)Nmodel)r   r   r   filterr   r   r   r   paramsr   r   r   r1   r   read_consistencyr1   points)	shard_keyr   r   r   r   r   r   r   r   with_vectorr   r   )r   r   r1   query_requestzSearch returned None)&rS   r   convert_queryrs   r!   Prefetchconvert_prefetch_querylistFilterconvert_filterSearchParamsconvert_search_paramsr   WithPayloadInterfaceconvert_with_payload_interface
WithVectorconvert_with_vectorsLookupLocationconvert_lookup_locationReadConsistencyconvert_read_consistencyShardKeySelectorconvert_shard_key_selectorr   Queryr   QueryPointsrz   resultr   convert_scored_pointQueryResponseWithPayloadSelectorconvert_with_payload_selectorQueryRequestr:   
search_apiquery_points)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r8   preshitscored_pointsr   query_resultr  s                           r   r  zAsyncQdrantRemote.query_points  sQ    8  "007(FOO4&==hGH(D) &% =Gq&//<ZJ55a8`aa%   ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^",0,<,<,B,B  $3%'!!-!-($3 +#'9%0" $+#6DMM% -C - 'C( NQZZXZcZ<<SAZMX''}==,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M"//,!#$ /()'M "&!5!5!B!B /'+	 "C " L 3?2E2EF%='==%MO$'( Y2s>   A)O+8O#G O#O$O6OD"O4O5!OOrequestsc                 8  K   | j                   r|D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||      ||n| j                         d {   }|j                  D cg c]C  }t        j                  |j                  D cg c]  }t!        j"                  |       c}      E c}}S | j$                  j&                  j)                  |||t        j*                  |             d {   j                  }	|	J d       |	S c c}w 7 c c}w c c}}w 7 +w)N)r   r  r   r1   r   r   )searches)r   r   r1   query_request_batchzQuery batch returned None)rS   rs   r!   r  r   convert_query_requestr   r   r  r   
QueryBatchr   QueryBatchPointsrz   r  r  r   r  r:   r  query_batch_pointsQueryRequestBatch)
r   r   r  r   r1   r8   rgrpc_resr  http_ress
             r   r  z$AsyncQdrantRemote.query_batch_points  s     
 "	 "A a!4!45 00OD "	   +':6;Q;Q'RS(AA+N6:6F6F6Q6Q%%$3!)%0#	 $+#6DMM 7R 7 1H "	 )A $$LMHHUHSJ;;C@HU )	  ii**==$3 +#(.(@(@((S	 >   f  'D)DD'OC1 VsN   F9FA?FFF "FF
F(AF,F-FFFgroup_by
group_sizewith_lookupc                 `  K   | j                   r|t        j                  |      }t        |t        j
                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j
                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |
t        t        j                              rt        j                  |
      }
t        |t        t        j                              rt        j                   |      }t        |t        j"                        rt        j$                  |      }t        |t&              rt)        j"                  |      }t        |t        j*                        rt        j,                  |      }t        |t        t        j.                              rt        j0                  |      }t        |t        t        j2                              rt        j4                  |      }| j6                  j9                  t)        j:                  di d|d|d|d|d|d|d	|
d
|d|d|d|d|	d|d|d|d|d|||n| j<                         d {   j>                  }tA        jB                  |      S t        |t(        j                        rtA        j                  |      }t        |t(        j                        rtA        j                  |      }t        |
t(        jD                        rtA        jF                  |
      }
t        |t(        j*                        rtA        j,                  |      }t	        jH                  ||||||||||	||
||      }| jJ                  jL                  jO                  ||||       d {   }|J d       |j>                  S c c}w 7 O7 !w)Nr   )
collectionr   r   r   r   r   r   r   r   r   r   r  r   r!  r   r1   r   r   r   )r   r   r   r   r   r   r   r   r  r   r   r   r!  r   )r   r   r1   query_groups_requestz%Query points groups API returned NonerP   )(rS   r   r   rs   r!   r   r   r   r   r   r   r   r   r   r   r   r   
WithLookupconvert_with_lookupstrr   r   r   r   r  r  r  r   QueryGroupsQueryPointGroupsrz   r  r   convert_groups_resultr	  r
  QueryGroupsRequestr:   r  query_points_groups)r   r   r  r   r   r   r   r   r   r   r   r   r   r!  r   r   r   r1   r8   r  r  r   r  s                          r   r,  z%AsyncQdrantRemote.query_points_groups)  s    <  "007(FOO4&==hGH(D) &% =Gq&//<ZJ55a8`aa%   ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'8'89(<<[I+s+"ooE+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"&&22)) (7# "*  ,	
 $ &2 &2  - )8 $ "* $. %0 %0 !(  ,>!" *5#& (/':G) 3  , f/ 0 33F;;,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M"55,!#$ /!%()''M  "&!5!5!I!I /'%2	 "J " L  +T-TT+&&&_.bs2   A)P.+8P$#H7P.P)D/P.
P,P.,P.samplec	                 b  K   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                         d {   }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||             d {   j$                  }|J d       |S 7 7 w)Nr   r   r   r-  r   r   r1   r   r   r   r   r   r-  r   r   r   r   r1   search_matrix_requestz(Search matrix pairs returned None result)rS   rs   r!   r   r   r   r   r  r  r   r  r   SearchMatrixPairsr   SearchMatrixPointsrz   r   convert_search_matrix_pairsr  r|   r  search_matrix_pairsSearchMatrixRequestr   r   r   r   r-  r   r   r   r1   r8   responsesearch_matrix_results               r   r6  z%AsyncQdrantRemote.search_matrix_pairs  s     ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N!--??''$3'!#%0'9	 $+#6DMM @  H 99(//JJlDKK0%44<HL%%00DD /'&,&@&@0!''	 E   & 	 $/[1[[/##?"%   C7F/9F+:BF/F-F/-F/c	                 b  K   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                         d {   }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||             d {   j$                  }|J d       |S 7 7 w)Nr   r/  r   r0  r1  z*Search matrix offsets returned None result)rS   rs   r!   r   r   r   r   r  r  r   r  r   SearchMatrixOffsetsr   r4  rz   r   convert_search_matrix_offsetsr  r|   r  search_matrix_offsetsr7  r8  s               r   r?  z'AsyncQdrantRemote.search_matrix_offsets  s     ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N!--AA''$3'!#%0'9	 $+#6DMM B  H ;;HOOLLlDKK0%44<HL%%00FF /'&,&@&@0!''	 G   & 	 $/]1]]/##?"r;  scroll_filterorder_byc                   K   | j                   r0t        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |	t        t        j                              rt        j                   |	      }	t        |t        t        j"                              rt        j$                  |      }| j&                  j)                  t+        j,                  |||||||||	|

      |
|
n| j.                         d {   }|j0                  D cg c]  }t3        j4                  |       c}|j7                  d      r t3        j8                  |j:                        fS d fS t        |t*        j<                        rt3        j8                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j>                        rt3        j@                  |      }t        |t*        jB                        rt3        jD                  |      }| jF                  jH                  jK                  ||t        jL                  |||||||	      |
       d {   j0                  }|J d       |jN                  |j:                  fS 7 c c}w 7 7w)Nr   )
r   r   rA  r   r   r   r   r   r   r1   r   next_page_offset)r   r   rA  r   r   r   r   )r   r   scroll_requestr1   z&Scroll points API returned None result)(rS   rs   r   r!   ExtendedPointIdr   convert_extended_point_idr   r   r   r   r   r   r   r  r  r  OrderByInterfaceconvert_order_by_interfacer   Scrollr   ScrollPointsrz   r  r   convert_retrieved_pointHasFieldconvert_point_idrC  PointIdOrderByconvert_order_byr	  r
  r|   
points_apiscroll_pointsScrollRequestr   )r   r   r@  r   rA  r   r   r   r   r   r1   r8   r  pointscroll_results                  r   scrollzAsyncQdrantRemote.scroll  s     &"5f6L6L"MN#==fE-7 * 9 9 N,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"($78O8O$PQ%@@J-1-=-=-D-D!!$3(%!!-!-%0'9# $+#6DMM .E . (C  IL

S
u33E:
S<< 23 ++C,@,@A  	  &$,,/#44V<-5 * 9 9 N(DLL1%66x@,(@(@A)GGU))44BB$3 +#)#7#7,#!)%%1$0"4$ $ C   f   !,V.VV,!((-*H*HII_(  Ts1   GM=M3M=.M6
D9M=M;0M=6M=count_filterexactc           
      Z  K   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||      ||n| j                         d {   j                   }t#        j$                  |      S t        |t        j                        rt#        j
                  |      }| j&                  j(                  j+                  |t        j,                  |||      ||       d {   j                   }	|	J d       |	S 7 7 w)Nr   )r   r   rX  r   r1   r   r   )r   rX  r   )r   count_requestr   r1   z!Count points returned None result)rS   rs   r!   r   r   r   r   r  r  r   r  r   Countr   CountPointsrz   r  r   convert_count_resultr|   rQ  count_pointsCountRequest)
r   r   rW  rX  r   r1   r   r8   r9  count_results
             r   countzAsyncQdrantRemote.countT  s     ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N&&,,$$(7+#+= ')4 (/':G - 
 
 f  228<<lDKK0%44<HL%%00== /$11'u@R ( >   & 	 'L)LL'5
 s%   C5F+7F'8BF+F)F+)F+r   facet_filterc	                   K   | j                   r/t        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                         d {   }
t!        j"                  |
j$                  D cg c]  }t'        j(                  |       c}      S t        |t        j                        rt'        j
                  |      }| j*                  j,                  j/                  |||t        j0                  |||||             d {   j2                  }|J d       |S 7 c c}w 7  w)Nr   )r   r   r   r   rX  r1   r   r   r   )hits)r   r   r   r   rX  )r   r   r1   facet_requestz!Facet points returned None result)rS   rs   r!   r   r   r   r   r  r  r   r  r   Facetr   FacetCountsrz   typesFacetResponserd  r   convert_facet_value_hitr|   rQ  facetFacetRequestr  )r   r   r   rb  r   rX  r1   r   r   r8   r9  r  facet_results                r   rk  zAsyncQdrantRemote.facet  s     ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N!--33  $3'#%0'9	 $+#6DMM 4  H &&IQW#j88=W  lDKK0%44<HL%%0066 /'$110'	 7   & 	 'L)LL'C X
s1   C7G9G:!GG7A<G3G4GGr   waitorderingupdate_filterupdate_modec	                 8  K   | j                   ret        |t        j                        rt	        j
                  |j                  t        |j                              }
t        t        |j                              D cg c]k  }t        j                  t	        j                  |j                  |         |
|   |j                  "t	        j                  |j                  |         nd       m }}t        |t              r>|D cg c]3  }t        |t        j                        rt	        j                   |      n|5 }}t        |t        j"                        rt	        j$                  |      }t        |t'        t        j(                              rt	        j*                  |      }t        |t        j,                        rt	        j.                  |      }t        |t        j0                        rt	        j2                  |      }| j4                  j7                  t        j8                  ||||||||      | j:                         d {   j<                  }|J d       t?        j@                  |      S t        |t        j,                        rt?        j.                  |      }t        |t              rW|D cg c]3  }t        |t        j                        rt?        j                   |      n|5 }}t        jB                  ||||      }t        |t        j                        rt        jD                  ||||      }| jF                  jH                  jK                  |||||       d {   j<                  }|J d       |S c c}w c c}w 7 Hc c}w 7 +w)	N)idvectorspayloadr   )r   rn  r   ro  r   rp  r1   rq  r   Upsert returned None result)r   r   rp  rq  )batchr   rp  rq  )r   rn  point_insert_operationsro  r1   )&rS   rs   r!   Batchr   convert_batch_vector_structrt  r[   idsr   r   PointStructrF  payloadsconvert_payloadr   convert_point_structWriteOrderingconvert_write_orderingr   r  r  r   r   
UpdateModeconvert_update_moder   UpsertUpsertPointsrz   r  r   convert_update_result
PointsListPointsBatchr|   rQ  upsert_points)r   r   r   rn  ro  r   rp  rq  r1   r8   vectors_batchidxrT  grpc_resulthttp_results                  r   upsertzAsyncQdrantRemote.upsert  sS     &&,,/4>4Z4ZNNC

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

3P -c 2!??6 !+ : :6??3;O P!  6  	 &$'
 "(	 "( "%););< 33E: "(	   (F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"-7 * 9 9 N+v'8'89(<<[I&&--%%(7!%!)+=&3 '$/	 !MM .   f  *I,II*33K@@-5 * 9 9 N&$'
 "(	 "( "%)9)9: 33E: "(	    **!0"/ +	 &&,,/++ 0"/ +	 ))44BB$3,2%# C   f  *I,II*W	((sL   A;N=A0N-N8N;DNN	A0N98N1A;N,N-$NNc                   K   | j                   r*|D 	cg c]  }	t        j                  |	       }}	t        |t        j
                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }| j                  j                  t        j                  |||||||      | j                          d {   j"                  }
|
J d       t%        j&                  |
      S t        |t        j                        rt%        j                  |      }| j(                  j*                  j-                  ||t	        j                  |||      ||       d {   j"                  S c c}	w 7 7 w)Nr   )r   rn  r   ro  r   rp  r1   r   rv  )r   r   rp  )r   rn  update_vectorsro  r1   )rS   r   convert_point_vectorsrs   r!   r  r  r   r  r  r   r   r   UpdateVectorsr   UpdatePointVectorsrz   r  r   r  r|   rQ  r  )r   r   r   rn  ro  r   rp  r1   r8   rT  r  s              r   r  z AsyncQdrantRemote.update_vectors  s     KQR6%j66u=6FR(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"-7 * 9 9 N&&44++(7!%!)+=&3 ' !MM 5   f  *I,II*33K@@-5 * 9 9 N))44CC$3#)#7#7%1CS`$ &# D   f
5 S&s/   GF<CGGBG-G.GGrt  c                   K   | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |      |	|||      | j                         d {   j                   }|J d       t#        j$                  |      S | j'                  |      \  }}| j(                  j*                  j-                  ||||t/        t        j                  ||||             d {   j                   S 7 7 w)N)names)r   rn  rt  points_selectorro  r   r1   r   z#Delete vectors returned None result)vectorr   r   r   )r   rn  ro  r1   delete_vectors)rS   _try_argument_to_grpc_selectorrs   r!   r  r   r  r   r  r  r   DeleteVectorsr   DeletePointVectorsVectorsSelectorrz   r  r   r  '_try_argument_to_rest_points_and_filterr|   rQ  r  r   )r   r   rt  r   rn  ro  r   r1   r8   r  opt_shard_key_selectorr  _points_filters                 r   r  z AsyncQdrantRemote.delete_vectorsH  s}     8<8[8[\b8c5_4!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"&&44++(7! $ 4 47 C(7!)+= ' !MM 5   f  *Q,QQ*33K@@!%!M!Mf!UWg))44CC$3%##,,,&&&"4$ D   f#$s%   C'F)F*B	F3F4FFr{  c                   K   | j                   rt        |t        t        j                              rt        j                  |      }|D 	cg c]<  }	t        |	t        t        j                              rt        j                  |	      n|	> }}	t        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t!        j"                  |||||||      ||n| j$                         d {   j&                  }
|
J d       |
D cg c]  }t)        j*                  |       c}S t        |t         j,                        rt)        j.                  |      }|D 	cg c]3  }	t        |	t         j0                        rt)        j2                  |	      n|	5 }}	| j4                  j6                  j9                  ||t        j:                  ||||      |       d {   j&                  }|J d       |S c c}	w 7 
c c}w c c}	w 7 +w)N)r   r{  r   r   r   r   r1   r   zRetrieve returned None result)r{  r   r   r   )r   r   point_requestr1   z!Retrieve API returned None result)rS   rs   r   r!   r   r   r   rE  rF  r   r   r  r  r  r   Getr   	GetPointsrz   r  r   rK  r	  r
  rN  rM  r|   rQ  
get_pointsPointRequest)r   r   r{  r   r   r   r   r1   r8   r  r  recordr  s                r   retrievezAsyncQdrantRemote.retrieve|  se     ,(;F<W<W(XY)HHV
 	 C c#6v7M7M#NO 44S9 	   &::<HL+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"&&**NN(7%1%1)4+= ' (/':G +   f  %F'FF%MSTV6J66v>VTT,(@(@A)GGU C 5?sDLL4Q
++C0WZZ  
 ))44??$3 +"("5"5%1$0"4	# $ @ 
 
 f  *O,OO*a U

sK   A
I5AI!CI5I&I58I)6I5
8I.AI5I3I5)I5c                 T   d }t        |t              rtt        j                  t        j                  |D cg c]<  }t        |t        t        j                              rt        j                  |      n|> c}            }||fS t        |t        j                        r|}||fS t        |t        t        j                              rD|j                  t        j                  |j                        }t        j                  |      }||fS t        |t        j                        r2t        j                  t        t        j                   |            }||fS t        |t        j                        rt        j                  |      }||fS t#        dt%        |             c c}w )N)r{  r   )r   "Unsupported points selector type: )rs   r   r   PointsSelectorPointsIdsListr   r!   rE  r   rF  r   r   r  convert_points_selectorr   r   FilterSelectorr\   ru   )clsr   r   r  r  s        r   r  z0AsyncQdrantRemote._try_argument_to_grpc_selector  s    "fd#"11))
 $*	 $*C &c+>v?U?U+VW #<<SA ! $*		O0  !344  3 34$O  !344 )>)> ?@+%/%J%J6K[K[%\"(@@HO  !344 .(@@&//?O  !344	 ,"11@O  !344 A$v,PQQ+s   AF%c                    t        |t              r\|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}t        t        j                  ||      }|S t        |t        j                        rt	        j                  |      }||_        |S t        |t        t        j                              r|}||_        |S t        |t        j                        rt        t        j                  ||      }|S t        |t        j                        r1t        t        j                  t	        j                  |      |      }|S t!        dt#        |             c c}w )N)r   r   )r   r   r  )rs   r   r   rN  r   rM  r   r!   PointIdsListr  r  r   r   r   r  r   r\   ru   )r  r   r   r  r  r  s         r   _try_argument_to_rest_selectorz0AsyncQdrantRemote._try_argument_to_rest_selector  sX    fd# "!C 5?sDLL4Q
++C0WZZ!   (##G?QO* %  3 34(@@HO(:O%   )>)> ?@$O(:O%  .'%%f@RO  ,'%%!008,O  A$v,PQQ1s   8E-r  c                 |    |j                  d      }|g S t        ||      }|dk(  rt        |j                        S g S )Npoints_selector_one_ofr   )
WhichOneofgetattrr   r{  )r  r  namevals       r   _points_selector_to_points_listz1AsyncQdrantRemote._points_selector_to_points_list  sF     ))*BC<Iot,8= 	r   c                 :   d }d }t        |t              rB|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}||fS t        |t        j                        rit	        j                  |      }t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|}||fS t        |t        j                        rt	        j                  |      }||fS t        dt!        |             c c}w )Nr  )rs   r   r   rN  r   rM  r  r  r!   r  r   r  r   r   r   r\   ru   )r  r   r  r  r  selectors         r   r  z9AsyncQdrantRemote._try_argument_to_rest_points_and_filter  s    fd# "!C 5?sDLL4Q
++C0WZZ!  ( !!!  3 34!99&AH(F$7$78"// !! Hf&;&;<"// !!  3 34mmG !!  5 56mmG !! .G
 !!	 , //7G !! A$v,PQQ's   8Fc                   K   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||||      | j                          d {   j"                        S | j%                  ||      }| j&                  j(                  j+                  |||||       d {   j"                  }	|	J d       |	S 7 k7 w)Nr   rn  r   ro  r   r1   r   )r   rn  r  ro  r1   zDelete points returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   Deleter   DeletePointsrz   r  r  r|   rQ  delete_points
r   r   r  rn  ro  r   r1   r8   r  r  s
             r   deletezAsyncQdrantRemote.delete%  s`     8<8[8[95_4 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33**11)),;!%#2%-/A$+ !% 2 
 
 &   #AA!3O ))44BB$3$3%# C   f  %D'DD%M7
$%   C E"E#AE4E5EEru  c	                   K   | j                   r| j                  |      \  }
}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |
||||      | j"                         d {   j$                        S | j'                  |      \  }}| j(                  j*                  j-                  ||||t        j                  |||||             d {   j$                  }|J d       |S 7 7 w)N)r   rn  ru  r  ro  r   r   r1   r   )ru  r   r   r   r   r   rn  ro  r1   set_payloadzSet payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   
SetPayloadr   SetPayloadPointsr~  rz   r  r  r|   rQ  r  )r   r   ru  r   r   rn  ro  r   r1   r8   r  r  r  r  r  s                  r   r  zAsyncQdrantRemote.set_payloadW  s     8<8[8[\b8c5_4!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33**55--,;!%$.$>$>w$G,;%-/A #$+	 !% 6   & $ "&!M!Mf!UWg))44@@$3%# & 1 1 '&&"4! A   f  %B'BB%MC$s%   C5F7E=8A+F#E?$F?Fc                   K   | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |	|||      | j"                         d {   j$                        S | j'                  |      \  }}| j(                  j*                  j-                  ||||t        j.                  ||||             d {   j$                  }|J d       |S 7 7 w)N)r   rn  ru  r  ro  r   r1   r   )ru  r   r   r   r  zOverwrite payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   OverwritePayloadr   r  r~  rz   r  r  r|   rQ  overwrite_payloadr  )r   r   ru  r   rn  ro  r   r1   r8   r  r  r  r  r  s                 r   r  z#AsyncQdrantRemote.overwrite_payload  s~     8<8[8[\b8c5_4!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33**;;--,;!%$.$>$>w$G,;%-/A$+ !% <   & " "&!M!Mf!UWg))44FF$3%# & 1 1 '&&"4	! G   f  %H'HH%M?"s%   C4E?6E;7A*E?!E="E?=E?keysc                   K   | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||	|||      | j                          d {   j"                        S | j%                  |      \  }}| j&                  j(                  j+                  ||||t        j                  ||||             d {   j"                  }|J d       |S 7 7 w)N)r   rn  r  r  ro  r   r1   r   )r  r   r   r   )r   rn  ro  r1   delete_payloadzDelete payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   DeletePayloadr   DeletePayloadPointsrz   r  r  r|   rQ  r  )r   r   r  r   rn  ro  r   r1   r8   r  r  r  r  r  s                 r   r  z AsyncQdrantRemote.delete_payload  sq     8<8[8[\b8c5_4!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33**8800,;!%!%,;%-/A$+ !% 9   & " "&!M!Mf!UWg))44CC$3%##)#7#7!''M_$ D   f  %E'EE%M9"s%   C!E,#E($A*E,E*E,*E,c                   K   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||||      | j                          d {   j"                        S | j%                  ||      }| j&                  j(                  j+                  |||||       d {   j"                  }	|	J d       |	S 7 k7 w)Nr  r   )r   rn  ro  r1   r  zClear payload returned None)rS   r  rs   r!   r  r   r  r   r  r  r   r  r   ClearPayloadr   ClearPayloadPointsrz   r  r  r|   rQ  clear_payloadr  s
             r   r  zAsyncQdrantRemote.clear_payload  s`     8<8[8[95_4 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33**77//,;!%#2%-/A$+ !% 8 
 
 &   #AA!3O ))44BB$3%#$3 C   f  %D'DD%M7
$r  update_operationsc           	      z  K   | j                   r|D cg c]  }t        j                  |       }}t        |t        j
                        rt        j                  |      }| j                  j                  t        j                  |||||      | j                         d {   j                  D cg c]  }t        j                  |       c}S | j                  j                   j#                  ||||t	        j$                  |             d {   j                  }|J d       |S c c}w 7 c c}w 7 %w)N)r   rn  
operationsro  r1   r   )r  )r   rn  ro  r1   r  z!Batch update points returned None)rS   r   convert_update_operationrs   r!   r  r  r   UpdateBatchr   UpdateBatchPointsrz   r  r   r  r|   rQ  batch_updateUpdateOperations)	r   r   r  rn  ro  r1   r8   	operationr  s	            r   batch_update_pointsz%AsyncQdrantRemote.batch_update_points(  sT     Pa!Pa9
33I>Pa  ! (F$8$89%<<XF **66..,;!%'8%-$+ !% 7 	 	 &F 008 " ))44AA$3%#&,&=&=IZ&[ B   f  %J'JJ%M?!	"s;   D;D-A3D;"D2#D;3D4AD;D9D;4D;change_aliases_operationsc                   K   | j                   r|D cg c]3  }t        |t        j                        st	        j
                  |      n|5 }}| j                  j                  t        j                  ||      ||n| j                         d {   j                  S |D cg c]3  }t        |t        j                        rt        j
                  |      n|5 }}| j                  j                  j                  |t        j                   |             d {   j                  }|J d       |S c c}w 7 c c}w 7 %w)N)r1   actionsr   )r  )r1   change_aliases_operationzUpdate aliases returned None)rS   rs   r   AliasOperationsr   convert_alias_operationsr   UpdateAliasesChangeAliasesrz   r  r   r:   aliases_apiupdate_aliasesr!   ChangeAliasesOperation)r   r  r1   r8   r  r  r  s          r   update_collection_aliasesz+AsyncQdrantRemote.update_collection_aliasesS  sc     
 ";	( ";I ")T-A-AB 33I> ";	 % ( ++99&&w@XY'.':G :   f 7	$
 7	 )T%9%9: //	: 7	 	! $
 ))''66)/)F)F4* 7   & 	 !A#AA!7(
$
s<   E8D5AED:E#8D<A EEE<Ec                   K   | j                   r| j                  j                  t        j                  |      | j
                         d {   j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                  |       d {   j                  }|J d       |S 7 c c}w 7  w)Nr   r   aliasesz$Get collection aliases returned None)rS   r   ListCollectionAliasesr   ListCollectionAliasesRequestrz   r  rh  CollectionsAliasesResponser   convert_alias_descriptionr:   r  get_collection_aliasesr  )r   r   r8   r9  descriptionr  s         r   r  z(AsyncQdrantRemote.get_collection_aliasesw  s      ++AA55oV MM B   g  33YaYa+J88EYa  ))''>>>__
& 	 !I#II!
 `s0   ACC!C/C1C<C=CCc                   K   | j                   r| j                  j                  t        j                         | j
                         d {   j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                          d {   j                  }|J d       |S 7 c c}w 7  w)Nr   r  zGet aliases returned None)rS   r   ListAliasesr   ListAliasesRequestrz   r  rh  r  r   r  r:   r  get_collections_aliasesr  r   r8   r9  r  r  s        r   get_aliaseszAsyncQdrantRemote.get_aliases  s     ++77++-t}} 8   g	 
 33YaYa+J88EYa  ))''??AA
& 	 !>#>>!

 B0   A	CC!C-C	/C8C9CCc                   K   | j                   r| j                  j                  t        j                         | j
                         d {   j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                          d {   j                  }|J d       |S 7 c c}w 7  w)Nr   )collectionszGet collections returned None)rS   r   Listr   ListCollectionsRequestrz   r  rh  CollectionsResponser   convert_collection_descriptionr:   collections_apiget_collectionsr  r  s        r   r  z!AsyncQdrantRemote.get_collections  s     ++00//14== 1   k	 
 ,, (0'/ ==kJ'/  ))++;;==
& 	 !B#BB!
 >r  c                 p  K   | j                   r`t        j                  | j                  j	                  t        j                  |      | j                         d {   j                        S | j                  j                  j                  |       d {   j                  }|J d       |S 7 U7 w)Nr  r   zGet collection returned None)rS   r   convert_collection_infor   r  r   GetCollectionInfoRequestrz   r  r:   r  get_collectionr   r   r8   r  s       r   r  z AsyncQdrantRemote.get_collection  s     55//3355oV $ 4   &  ))++::?:[[
& 	 !A#AA! \s$   AB6B2;B6B4B64B6c                 r  K   | j                   rW| j                  j                  t        j                  |      | j
                         d {   j                  j                  S | j                  j                  j                  |       d {   j                  }|J d       |j                  S 7 e7 %w)Nr  r   zCollection exists returned None)rS   r   CollectionExistsr   CollectionExistsRequestrz   r  existsr:   r  collection_existsr  s       r   r  z#AsyncQdrantRemote.collection_exists  s     ++<<00Q MM =   fVV ))++==o=^^
& 	 !D#DD!}} _s%   AB7B3AB7B5$B75B7optimizers_configcollection_paramsvectors_confighnsw_configquantization_configsparse_vectors_configstrict_mode_configrC   c                 >  K   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        j                        rt	        j                  |      }t        |t              rt	        j                  |      }t        |t        j                        rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }t        |t              rt	        j                  |      }t        |	t        j                         rt	        j"                  |	      }	t        |
t              rt	        j$                  |
      }
| j&                  j)                  t+        j,                  ||||||||	||

      ||n| j.                         d {   j0                  S t        |t*        j                        rt3        j
                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j4                        rt3        j                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j                        rt3        j                  |      }| j6                  j8                  j;                  |t        j,                  |||||||	|
      |       d {   j0                  }|J d       |S 7 Z7 w)N)
r   r  r   r  r  r  r  r  r1   rC   r   )r  r   rt  r  r  sparse_vectorsr  rC   )update_collectionr1   zUpdate collection returned None)rS   rs   r!   OptimizersConfigDiffr   convert_optimizers_config_diffCollectionParamsDiffconvert_collection_params_diffdictconvert_vectors_config_diffHnswConfigDiffconvert_hnsw_config_diffr   QuantizationConfigDiff convert_quantization_config_diffconvert_sparse_vector_configStrictModeConfigconvert_strict_mode_configr~  r   Updater   UpdateCollectionrz   r  r   VectorsConfigDiffr:   r  r  )r   r   r  r  r  r  r  r1   r  r  rC   r8   r  s                r   r  z#AsyncQdrantRemote.update_collection  s     +V-H-HI$.$M$MN_$`!+V-H-HI$.$M$MN_$`!.$/!+!G!G!W+v'<'<=(AA+N-x8U8U/VW&0&Q&Q''# /6(2(O(O))% ,f.E.EF%/%J%JK]%^"(D)%55h?++22))(7*;0'5$/,?.C+= '!) (/':G 3   f!" ')B)BC * I IJ[ \')B)BC * I IJ[ \nd&<&<='CCNSNk4#6#67$==kJK)4+F+FG","M"MNa"b))++=="("9"9&7,* +(;#8'9%	#   >   & 	  !D#DD!W6s%   F<L>L?D?L>L?LLc                 V  K   | j                   rR| j                  j                  t        j                  ||      ||n| j
                         d {   j                  S | j                  j                  j                  ||       d {   j                  }|J d       |S 7 R7 w)Nr   r1   r   zDelete collection returned None)
rS   r   r  r   DeleteCollectionrz   r  r:   r  delete_collection)r   r   r1   r8   r  s        r   r+  z#AsyncQdrantRemote.delete_collection   s      ++22))/SZ['.':G 3   f ))++==oW^=__
& 	 !D#DD! `s$   AB)B%8B)B'B)'B)shard_numberreplication_factorwrite_consistency_factoron_disk_payload
wal_configsharding_methodc                 r  K   | j                   rt        |t        j                  t        f      rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        j                        rt        j                  |	      }	t        |
t        t        j                              rt        j                  |
      }
t        |t              rt        j                   |      }t        |t        j"                        rt        j$                  |      }t        |t        j&                        rt        j(                  |      }t        |t              rt        j*                  |      }t-        j.                  |||	||||||||
||||      }| j0                  j3                  || j4                         d {   j6                  S t        |t,        j                        rt9        j                  |      }t        |t,        j                        rt9        j                  |      }t        |	t,        j                        rt9        j                  |	      }	t        |
t,        j                        rt9        j                  |
      }
t        j.                  ||||||||	|
||||      }| j:                  j<                  j?                  |||       d {   j6                  }|J d       |S 7 27 w)N)r   r  r0  r  r,  r/  r1   r  r-  r.  r  r  r1  r  rC   r   )rt  r,  r-  r.  r/  r  r  r0  r  r  r1  r  rC   )r   create_collectionr1   zCreate collection returned None) rS   rs   r!   VectorParamsr  r   convert_vectors_configr  r  r  r  WalConfigDiffconvert_wal_config_diffr   QuantizationConfigconvert_quantization_configr"  ShardingMethodconvert_sharding_methodr#  r$  r~  r   CreateCollectionr   Createrz   r  r   r:   r  r3  )r   r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   r8   r3  create_collection_requestr  s                       r   r3  z#AsyncQdrantRemote.create_collection0  s    & .6+>+>*EF!+!B!B>!R+v'<'<=(AA+N+V-H-HI$.$M$MN_$`!*f&:&:;'??
K
-x8Q8Q/RS&0&L&LM`&a#/6(2(O(O))% /6+@+@A","D"D_"U,f.E.EF%/%J%JK]%^"(D)%55h? $ 5 5 /'%"3) /-#5)A$7&; /#5!!$ ++223Ddmm2\\f k4#6#67$==kJK')B)BC * I IJ[ \j$"4"45#;;JGJ)4+B+BC","H"HI\"]$*$;$;"%1%=+#/! 30+1%
!  ))++== /"; >  
 & 	 !D#DD!C ]4s%   G>L7 L2DL7L5L75L7c                    K   | j                  ||       d {    | j                  |||||||||	|
|||||       d {   S 7 ,7 w)Nr   )r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   )r+  r3  )r   r   r  r,  r-  r.  r/  r  r  r0  r  r1   r  r1  r  rC   r8   s                    r   recreate_collectionz%AsyncQdrantRemote.recreate_collection  sw     & $$_g$FFF+++)%1%=+#/! 3"7+1 , 
 
 	
 	G
s!   A
A'A
AA
A
c                 2    | j                   rt        S t        S r   )rS   r#   r$   r   s    r   _updater_classz AsyncQdrantRemote._updater_class  s    $$$$r   batches_iteratormax_retriesparallelmethodc
                 8   |(|t               v r|}
n)t        d| dt                      dt               v rdnd}
| j                  rL|| j                  | j                  || j
                  | j                  ||| j                  | j                  ||	d}n || j                  |||||	d| j                  }|dk(  r3 | j                  j                  d	i |}|j                  |      D ]  } y t        || j                  |
      } |j                  |fi |D ]  } y )
NzStart methods z& is not available, available methods: 
forkserverspawn)r   r2   r+   rD  r   rC   rn  r   r   r1   rp  rq  )r   urirD  rn  r   rp  rq  r;   )start_methodrP   )r   r\   rS   r^   rT   rV   ri   rU   rz   rx   ry   rB  r   processr"   unordered_map)r   rC  r   rD  rE  rF  rn  r   rp  rq  rK  updater_kwargsupdaterr   pools                  r   _upload_collectionz$AsyncQdrantRemote._upload_collection  sF    .00% $VH,RShSjRkl  ,8;P;R+R<X_L#2

*{{ ..&8--==!.*N  $3}}*&8!.*	 //	N q=/d))//A.AG__%56 7 &h0C0CR^_D'T''(8KNK Lr   
batch_sizec                 r    | j                   j                  ||      }| j                  ||||||||	|
	       y )N)recordsrR  	rC  r   rD  rE  rF  rn  r   rp  rq  )rB  iterate_records_batchesrQ  )r   r   r   rR  rE  rF  rD  rn  r   rp  rq  r8   rC  s                r   upload_pointszAsyncQdrantRemote.upload_points  sV      ..FFz G 
 	-+#1'# 	  
	
r   c                 v    | j                   j                  ||||      }| j                  ||||||	|
||	       y )N)rt  ru  r{  rR  rU  )rB  iterate_batchesrQ  )r   r   rt  ru  r{  rR  rE  rF  rD  rn  r   rp  rq  r8   rC  s                  r   upload_collectionz#AsyncQdrantRemote.upload_collection  sY       ..>>W#* ? 
 	-+#1'# 	  
	
r   
field_namefield_schema
field_typec           	        K   |t        dt        dd       |}| j                  rd }	t        |t        j
                        rt        j                  |      }t        |t              r(t        j                  t	        j
                  |            }t        |t              rt        |      }t        |t        t        j                              rt        j                  |      }t        |t        j                        r|}	|	j!                  d      }
t#        |	|
      }t        |t        j$                        rt        j&                  j(                  }t        |t        j*                        rt        j&                  j,                  }t        |t        j.                        rt        j&                  j0                  }t        |t        j2                        rt        j&                  j4                  }t        |t        j6                        rt        j&                  j8                  }t        |t        j:                        rt        j&                  j<                  }t        |t        j>                        rt        j&                  j@                  }t        |t        jB                        rt        j&                  jD                  }t        jF                  ||||	|||      }tI        jJ                  | jL                  jO                  || jP                         d {   jR                        S t        |t              rtI        j                  |      }t        |t        j                        rtI        j                  |      }| jT                  jV                  jY                  |t	        jN                  ||      |||	       d {   jR                  }|J d
       |S 7 7 w)Nz2field_type is deprecated, use field_schema insteadr(   zpayload-index-field-type)rF   rG   rH   r  index_params)r   r[  r]  field_index_paramsrn  ro  r1   r   )r[  r\  )r   create_field_indexrn  ro  r1   z Create field index returned None)-r   DeprecationWarningrS   rs   r!   PayloadSchemaTyper   convert_payload_schema_typer'  intr   r   PayloadSchemaParamsconvert_payload_schema_paramsr   PayloadIndexParamsr  r  TextIndexParams	FieldTypeFieldTypeTextIntegerIndexParamsFieldTypeIntegerKeywordIndexParamsFieldTypeKeywordFloatIndexParamsFieldTypeFloatGeoIndexParamsFieldTypeGeoBoolIndexParamsFieldTypeBoolDatetimeIndexParamsFieldTypeDatetimeUuidIndexParamsFieldTypeUuidCreateFieldIndexCollectionr   r  r   CreateFieldIndexrz   r  r|   indexes_apira  )r   r   r[  r\  r]  rn  ro  r1   r8   r`  r  r_  requestr  s                 r   create_payload_indexz&AsyncQdrantRemote.create_payload_index.  s     !L+.	 &L!%,(@(@A)EElS,,)EE,,\:  ,,@N,1K1K(LM)GGU,(?(?@%1")44^D&'94@lD,@,@A#'>>#?#?LlD,C,CD#'>>#B#BLlD,C,CD#'>>#B#BLlD,A,AB#'>>#@#@LlD,?,?@#'>>#>#>LlD,@,@A#'>>#?#?LlD,D,DE#'>>#C#CLlD,@,@A#'>>#?#?L55 /%'#5!G 33''88$--8XX``  lC(%AA,OLlD$;$;<%CCLQL%%11DD /#)#:#:)$ ! E   & 	 !E#EE!% Ys%   LOOB(O;O<OOc                   K   | j                   rft        j                  |||||      }t        j                  | j
                  j                  || j                         d {   j                        S | j                  j                  j                  |||||       d {   j                  }|J d       |S 7 Y7 w)N)r   r[  rn  ro  r1   r   z Delete field index returned None)rS   r   DeleteFieldIndexCollectionr   r  r   DeleteFieldIndexrz   r  r|   r|  delete_field_index)	r   r   r[  rn  ro  r1   r8   r}  r  s	            r   delete_payload_indexz&AsyncQdrantRemote.delete_payload_index  s      55 /%!G 33''88$--8XX``  %%11DD /%! E   & 	 !E#EE! Ys$   A C "B<#?C "B>#C >C c                   K   | j                   rp| j                  j                  t        j                  |      | j
                         d {   j                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                  |       d {   j                  }|J d       |S 7 tc c}w 7  w)Nr  r   'List snapshots API returned None result)rS   r   r  r   ListSnapshotsRequestrz   snapshot_descriptionsr   convert_snapshot_descriptionr|   snapshots_apilist_snapshotsr  )r   r   r8   	snapshotssnapshots        r   r  z AsyncQdrantRemote.list_snapshots  s      ))..--oN MM /   $#  W``V_(J;;HEV_``%%33BBSbBcc
& 	 $O&OO$
 acs0   ACCC C<,C(C	)CCc                 `  K   | j                   rb| j                  j                  t        j                  |      | j
                         d {   j                  }t        j                  |      S | j                  j                  j                  ||       d {   j                  S 7 \7 w)Nr  r   )r   rn  )rS   r   r=  r   CreateSnapshotRequestrz   snapshot_descriptionr   r  r|   r  create_snapshotr  )r   r   rn  r8   r  s        r   r  z!AsyncQdrantRemote.create_snapshot  s      ))00..O MM 1   #"  ::8DD%%33CC /d D   &		s%   AB.B*AB.B,B.,B.snapshot_namec                 (  K   | j                   rE| j                  j                  t        j                  ||      | j
                         d {    y| j                  j                  j                  |||       d {   j                  S 7 ?7 w)N)r   r  r   T)r   r  rn  )
rS   r   r  r   DeleteSnapshotRequestrz   r|   r  delete_snapshotr  )r   r   r  rn  r8   s        r   r  z!AsyncQdrantRemote.delete_snapshot  s      %%,,**$3= 	 -    %%33CC /}SW D   &		s$   ABB0B?B BBc                   K   | j                   rn| j                  j                  t        j                         | j
                         d {   j                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                          d {   j                  }|J d       |S 7 rc c}w 7  w)Nr   z,List full snapshots API returned None result)rS   r   ListFullr   ListFullSnapshotsRequestrz   r  r   r  r|   r  list_full_snapshotsr  )r   r8   r  r  s       r   r  z%AsyncQdrantRemote.list_full_snapshots  s     ))22113T]] 3   $#	 
 W``V_(J;;HEV_``..<<PPRRZZ	$T&TT$ aRs0   A	CB>CC :*C$C%C Cc                 Z  K   | j                   r`| j                  j                  t        j                         | j
                         d {   j                  }t        j                  |      S | j                  j                  j                  |       d {   j                  S 7 [7 w)Nr   )rn  )rS   r   
CreateFullr   CreateFullSnapshotRequestrz   r  r   r  r|   r  create_full_snapshotr  )r   rn  r8   r  s       r   r  z&AsyncQdrantRemote.create_full_snapshot  s      ))44224dmm 5   #"	 !
 ::;OPP))77LLRVLWW___
 Xs%   A	B+B'AB+B)B+)B+c                 $  K   | j                   rD| j                  j                  t        j                  |      | j
                         d {    y| j                  j                  j                  ||       d {   j                  S 7 >7 w)N)r  r   T)r  rn  )
rS   r   
DeleteFullr   DeleteFullSnapshotRequestrz   r|   r  delete_full_snapshotr  )r   r  rn  r8   s       r   r  z&AsyncQdrantRemote.delete_full_snapshot  s      %%00..]KUYUbUb 1    %%33HH+$ I   &			
s$   ABB/B=B>BBlocationchecksumpriorityc           
         K   | j                   j                  j                  ||t        j                  ||||             d {   j
                  S 7 w)Nr  r  r  r/   )r   rn  snapshot_recover)r|   r  recover_from_snapshotr!   SnapshotRecoverr  )r   r   r  r/   r  r  rn  r8   s           r   recover_snapshotz"AsyncQdrantRemote.recover_snapshot  s\      %%33II /!'!7!7%8U\" J   &	s   AAAAshard_idc                    K   | j                   j                  j                  ||       d {   j                  }|J d       |S 7 w)N)r   r  r  )r|   r  list_shard_snapshotsr  )r   r   r  r8   r  s        r   r  z&AsyncQdrantRemote.list_shard_snapshots	  s]      %%33HH /( I   &	 	
 $O&OO$   +A	AA	c                    K   | j                   j                  j                  |||       d {   j                  S 7 w)N)r   r  rn  )r|   r  create_shard_snapshotr  )r   r   r  rn  r8   s        r   r  z'AsyncQdrantRemote.create_shard_snapshot	  sE      %%33II /( J   &		s   ,?=?c                    K   | j                   j                  j                  ||||       d {   j                  S 7 w)N)r   r  r  rn  )r|   r  delete_shard_snapshotr  )r   r   r  r  rn  r8   s         r   r  z'AsyncQdrantRemote.delete_shard_snapshot 	  sJ      %%33II /!+	 J   &	s   -A >A c                    K   | j                   j                  j                  |||t        j                  ||||             d {   j
                  S 7 w)Nr  )r   r  rn  shard_snapshot_recover)r|   r  recover_shard_from_snapshotr!   ShardSnapshotRecoverr  )	r   r   r  r  r/   r  r  rn  r8   s	            r   recover_shard_snapshotz(AsyncQdrantRemote.recover_shard_snapshot1	  s_      %%33OO /!'-'B'B%8U\(	 P   &		s   AAAAr   shards_number	placementinitial_statec                   K   | j                   rt        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }| j                  j                  t        j                  ||t        j                  ||||xs g |            ||n| j                         d {   j                  S | j                  j                   j#                  ||t        j$                  |||||             d {   j                  }	|	J d       |	S 7 k7 w)N)r   r  r-  r  r  r   r1   r}  r   )r   r1   create_sharding_keyzCreate shard key returned None)rS   rs   r   r!   ShardKeyr   convert_shard_keyReplicaStateconvert_replica_stater   CreateShardKeyr   CreateShardKeyRequestrz   r  r|   distributed_apicreate_shard_keyCreateShardingKey)
r   r   r   r  r-  r  r  r1   r8   r  s
             r   r  z"AsyncQdrantRemote.create_shard_keyG	  s>     )%8%IJ&88C	-)<)<= * @ @ O++::..(7 ' $ 3 3&/*7/A&/o2*7!
 (/':G ;   f$ ))99JJ$3#(.(@(@"+&3+="+&3) K 
 
 f  %G'GG%M="
s%   CEEAE(E)EEc           	        K   | j                   rt        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |            ||n| j                         d {   j                  S | j                  j                  j                  ||t        j                   |             d {   j                  }|J d       |S 7 g7 w)N)r   r  r   )r   r1   drop_sharding_keyzDelete shard key returned None)rS   rs   r   r!   r  r   r  r   DeleteShardKeyr   DeleteShardKeyRequestrz   r  r|   r  delete_shard_keyDropShardingKey)r   r   r   r1   r8   r  s         r   r  z"AsyncQdrantRemote.delete_shard_keyx	  s      )%8%IJ&88C	++::..(7 ' $ 3 3i H
 (/':G ;   f	 ))99JJ$3#&,&<&<y&Q K  
 f  %G'GG%M%s%   BDD AD-D	.D	Dc                 D  K   | j                   rV| j                  j                  t        j                         | j
                         d {   }t        j                  |      S | j                  j                  j                          d {   }|J d       |S 7 P7 w)Nr   zHealthcheck returned None)rS   r   HealthCheckr   HealthCheckRequestrz   r   convert_health_check_replyr   service_apiroot)r   version_infos     r   infozAsyncQdrantRemote.info	  s     !%!;!;'')4== "< " L 88FF!YY227799'D)DD' :s%   A	B BA B BB B cluster_operationc                   K   | j                   rxt        j                  |      }i }t        |t        j
                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nt        |t        j                        r||d<   nnt        |t        j                        r||d<   nNt        |t        j                        r||d<   n.t        |t        j                        r||d<   nt        d	|       | j                  j                  t	        j                   d||d
|||n| j"                         d {   j$                  S | j&                  j(                  j+                  |||       d {   j$                  }|J d       |S 7 S7 w)N
move_shardreplicate_shardabort_transferdrop_replicar  r  restart_transferreplicate_pointszUnknown cluster operation: r)  r   )r   cluster_operationsr1   z'Cluster collection update returned NonerP   )rS   r   convert_cluster_operationsrs   r   	MoveShardReplicateShardAbortShardTransferReplicar  r  RestartTransferReplicatePointsrt   r   UpdateCollectionClusterSetup#UpdateCollectionClusterSetupRequestrz   r  r   r  update_collection_cluster)r   r   r  r1   r8   grpc_operationupdate_results          r   cluster_collection_updatez+AsyncQdrantRemote.cluster_collection_update	  s      * E EFW XN+T^^</@|,-t/B/BC4E01-t/F/FG3D/0-t||<1B~.-t/B/BC5F12-t/B/BC5F12-t/C/CD5F12-t/C/CD5F12"=>O=P QRR++HH<< (7LZ (/':G	 I   f ))++EE /#4 F  
 & 	 (S*SS(s$   E7G9G:9G3G4GGc                    K   | j                   j                  j                          d {   j                  }|J d       |S 7 w)NzCluster status returned None)r   r  cluster_statusr  )r   status_results     r   r  z AsyncQdrantRemote.cluster_status	  sE     #yy88GGIIQQ(H*HH( J   (AAAc                    K   | j                   j                  j                          d {   j                  }|J d       |S 7 w)Nz"Recover current peer returned None)r   r  recover_current_peerr  )r   recover_results     r   r  z&AsyncQdrantRemote.recover_current_peer	  sE      $		 9 9 N N PPXX)O+OO) Qr  peer_idforcec                    K   | j                   j                  j                  |||       d {   j                  }|J d       |S 7 w)N)r  r  r1   zRemove peer returned None)r   r  remove_peerr  )r   r  r  r1   r8   r  s         r   r  zAsyncQdrantRemote.remove_peer	  s\      ))++77ug 8   &	 	
 (E*EE(s   ,A
AA
c                 `  K   | j                   rX| j                  j                  t        j                  |      | j
                         d {   }t        j                  |      S | j                  j                  j                  |       d {   j                  }|J d       |S 7 \7 w)Nr  r   z%Collection cluster info returned None)rS   r   CollectionClusterInfor   CollectionClusterInfoRequestrz   r   convert_collection_cluster_infor   r  collection_cluster_infor  )r   r   collection_infos      r   r  z)AsyncQdrantRemote.collection_cluster_info	  s     $($9$9$O$O11/R %P % O ==oNN))++CC / D   &	 	
 *S,SS*s%   AB.B*AB.B,B.,B.completed_limitc                    K   | j                   j                  j                  ||       d {   j                  }|J d       |S 7 w)N)r   r  zGet optimizations returned None)r:   r  get_optimizationsr  )r   r   r  r8   r  s        r   r  z#AsyncQdrantRemote.get_optimizations	  sY      ))++== / >   &	 	
 !D#DD!r  c           
        K   | j                   r| j                  j                  t        j                  |      | j
                         d {   }t        j                  |j                  D cg c]5  }t        j                  t        j                  |j                              7 c}      S | j                  j                  j                  |       d {   j                   }|J d       |S 7 c c}w 7  w)Nr  r   )r   )
shard_keyszList shard keys returned None)rS   r   ListShardKeysr   ListShardKeysRequestrz   r!   ShardKeysResponser  ShardKeyDescriptionr   r  r   r   r  list_shard_keysr  )r   r   r8   r9  skr  s         r   r  z!AsyncQdrantRemote.list_shard_keys	  s      !22@@))/JTXTaTa A  H ++ '111 ..:3O3OPRPVPV3WX1  ))++;;O;\\
& 	 !B#BB! ]s0   AC=C4!C=/:C6)1C=C;C=6C=details_levelc                    K   | j                   j                  j                  ||       d {   j                  }|J d       |S 7 w)N)r  r1   zCluster telemetry returned None)r   r  cluster_telemetryr  )r   r  r1   r8   r  s        r   r  z#AsyncQdrantRemote.cluster_telemetry
  sY      ))++==+W >   &	 	
 !D#DD!r  )Ni  i  FNNNNNNNTNNr   )r   N)NNNNN
   NTFNNNNN)NN)NNNNNr	  r)   TFNNNNNN)Nr)   r	  NNNN)	Nr	  NNTFNNN)NTNNN)Nr	  FNNN)TNNNNN)TNNNN)TNNN)TFNNN)TNN)	NNNNNNNNN)NNNNNNNNNNNNNN)r;   NFNNN)@   r;   Nr)   FNNN)
NNr
  r;   Nr)   FNNN)NNTNN)T)NNNT)NNNNN)__name__
__module____qualname__r{   r   r'  re  boolr  r   r   r   rR   staticmethodr   propertyr   floatr   tupler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r:   rh  rN  r   SparseVectorr  
NumpyArrayDocumentImageInferenceObjectr   r   r   r
   PayloadSelectorr   r   r  r  r  r  r  WithLookupInterfaceGroupsResultr,  SearchMatrixPairsResponser6  SearchMatrixOffsetsResponser?  rO  RecordrV  CountResultra  ri  rk  Pointsr  r  UpdateResultr  PointVectorsr  r  r  r  classmethodr  r!   r  r  rE  r  r  Payloadr  r  r  r  UpdateOperationr  r  r  r  r  r  r   r  CollectionInfor  r  r  r  r'  r  r   r	   SparseVectorParamsr#  r  r+  r4  r6  r8  r:  r3  r@  r   r%   rB  r   rQ  r|  rW  VectorStructrZ  rc  r~  r  SnapshotDescriptionr  r  r  r  r  r  SnapshotPriorityr  r  r  r  r  r  r  r  r  VersionInfor  ClusterOperationsr  ClusterStatusr  r  r  r  r  OptimizationsResponser  r  r  DistributedTelemetryDatar  __classcell__)r   s   @r   r'   r'   +   s    !!"!".2W[$( $)-`4Z` Dj` 	`
 ` d{` t` d
` t` Dj` 38nt+` &b#g."in:L1MMPTT` "` :` c3h$&`  !`D %)#s(^;>IL	 2   edl S T . , ,cDj#sTz3:&M N , ,	/S 	/R*



3  	L$"6"6 	L 	L 	GT__ 	G 	G 	J 2 2 	J 	J 	E4?? 	E 	E #i/ # # #i/ # #(  AE,037!EI-2(,3748<@"3ii }}
u+
tE{
 

 ++	
 

 .. ++ 

  	i Tzi ..4#77$>i llT)i  ))D0!i" #i$ d
%i& Xc]*U-B-BB'i( Xc]*)i* +i, ))D0-i. **T1/i0 "22T91i2 t3i4 5i6 
		7i^ 59"** 5--.* **T1	*
 t* * 
e!!	"*r  AE,037EI-2(,8<3748<@"7s's' s' }}
u+
tE{
 

 ++	
 

 .. ++ 

  		s' Tzs' ..4#77$>s'  llT)!s'" ))D0#s'$ %s'& 's'( Xc]*U-B-BB)s'* Xc]*+s', -s'. ..5/s'0 ))D01s'2 **T13s'4 "22T95s'6 t7s'8 9s': 
		;s'p -1 48<@"2$2$ llT)2$ 	2$
 2$ Tz2$ **T12$ "22T92$ t2$ 2$ 
	(	(2$n -1 48<@"2$2$ llT)2$ 	2$
 2$ Tz2$ **T12$ "22T92$ t2$ 2$ 
	*	*2$n .2)-'+EI-248<@"LJLJ ||d*LJ 	LJ
 --$&LJ $LJ Xc]*U-B-BBLJ Xc]*LJ **T1LJ "22T9LJ tLJ LJ 
tELL!5==4#77	8LJb -1<@"48,, llT), 	,
 "22T9, t, **T1, , 
		,d -1"48<@44 4 llT)	4
 4 4 t4 **T14 "22T94 4 
		4t /3<@-1/3"\\ \ 	\
 %%,\ "22T9\ ||d*\ %%,\ t\ \ 
		\D /3<@-1"00 ++,0 	0
 %%,0 "22T90 ||d*0 t0 0 
		0n /3<@"22 #2 $$	2
 2 %%,2 "22T92 t2 2 
		2p FJ-248<@">> emm$> Xc]*U-B-BB	>
 Xc]*> **T1> "22T9> t> > 
ell	>@ 5))5	t""D$9$9D$@@	A5 5> ))?D?U?UX\?\			 > 	"11		dll		 	 "))"	tF**+d2FMMD4HH	I" "@ /3<@"00 --0 	0
 %%,0 "22T90 t0 0 
		0n /3<@"66 6 $$	6
 4Z6 6 %%,6 "22T96 t6 6 
		6z /3<@"33 3 $$	3
 3 %%,3 "22T93 t3 3 
		3t /3<@"00 sm0 $$	0
 0 %%,0 "22T90 t0 0 
		0l /3<@"00 --0 	0
 %%,0 "22T90 t0 0 
		0l /3")) $E$9$9:) 	)
 %%,) t) ) 
e  	!)\ #"#+E,A,A#B" t" 	"
 
"H".1		)	)*# %2R2R $c e6O6O &C 3 5K_K_  s c d " @D?C9=37CG"OS<@)-OO !55<O !55<	O
 //$6O ))D0O #99D@O tO  'sE,D,D'DELO "22T9O --$&O O 
Od ;?"-04ZJM	& 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[  --$&![" #[$ 
%[@ 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$
  --$&!$
" #$
$ 
%$
L %\ 2 % % !<@-1/36"6 6 	6
 6 d
6 6 "22T96 ||d*6 %%,6 
6x !<@-1/3

 **+
 	

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

 emm$t+
 
 
 d

 
 
 "22T9
 ||d*
 %%,
 
 

F 8<59/3"OO O --4	O
 ++d2O O %%,O tO O 
		Oj /3"  	
 %%, t  
		@".1	e''	($ 26"*.AD		"	"T	)$ FJ"36>BUX	"
# 
$u?X?X:Y 
  
`
`+.
`		"	"
` 04 (,?B	$ ##26  t	
 * ((4/   
(	"	.1	=@		e''	(	 AE".19=PS		"	"T	)   	
   
, ##26  	
 t * ((4/   
4 %))-&*37"// >>/ Tz	/
  $J/ 9t#/ ))D0/ t/ / 
/j #	 >> t	
  
>E--  #	,, !22, t	,
 , 
,\e&9&9 
D  NR		#'$;	@Cd
	]`			S UE`E`   CG	"	584Z	RU			$	$	".1		 	 ( GK	 4Z	9<t	VY			'	'	r   r'   )?importlib.metadataro   rb   rq   multiprocessingr   	threadingr   typingr   r   r   r   r	   r
   r   r   rg   r   r   urllib3.utilr   r   urllib.parser   $qdrant_client.common.client_warningsr   r   qdrant_clientqdrant_client._pydantic_compatr   qdrant_client.authr   qdrant_client.async_client_baser   "qdrant_client.common.version_checkr   r   qdrant_client.connectionr   r   qdrant_client.conversionsr   rh  &qdrant_client.conversions.common_typesr   $qdrant_client.conversions.conversionr   r   r   qdrant_client.httpr   r    r!    qdrant_client.parallel_processorr"   $qdrant_client.uploader.grpc_uploaderr#   $qdrant_client.uploader.rest_uploaderr$   qdrant_client.uploader.uploaderr%   r'   rP   r   r   <module>rE     ss       1  X X X   '   P & 4 ) ; P E ; F 
 A @ ? B B 8o' o'r   