
    IgJ                       d dl mZm Z mZ d dlmZmZmZmZmZm	Z	m
Z
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mZmZ d dlmZ d d	lmZm Z  d d
l!m"Z" dede#de$fdZ%dedefdZ&dedefdZ'dee#ef   dee#ef   fdZ(dee#ef   dee#ef   fdZ)dejT                  dejV                  fdZ,dejV                  dejT                  fdZ- G d d      Z. G d d      Z/y# e$ r Y w xY w)    )datedatetimetimezone)	AnyDictListMappingOptionalSequenceTupleUnionget_args)MessageToDict)	Timestamp)MessageMapContainer)grpc)	ListValue	NullValueStructValue)models)	constructto_jsonable_python)get_args_subscribedmessagefieldreturnc           	          	 | j                  |      S # t        $ rD t        | j                         D cg c]  \  }}|j                   nc c}}w c}}      }||v cY S w xY w)a  
    Same as protobuf HasField, but also works for primitive values
    (https://stackoverflow.com/questions/51918871/check-if-a-field-has-been-set-in-protocol-buffer-3)

    Args:
        message (Any): protobuf message
        field (str): name of the field
    )HasField
ValueErrorset
ListFieldsname)r   r   
descriptor_value
all_fieldss        a/var/www/html/answerous/venv/lib/python3.12/site-packages/qdrant_client/conversions/conversion.py	has_fieldr(      s\    #&& #GDVDVDXY.@j&*//YYZ

""#s    !A A
A A payloadc           
         | t        t        j                        S t        | t              rt        |       S t        | t
              rt        |       S t        | t              rt        |       S t        | t              rt        |       S t        | t        t        f      r-t        t        | D cg c]  }t        |       c}            S t        | t              r4t        t        t        d | j                         D              	      
      S t        | t              st        | t               rt        t#        |             S t%        d|        c c}w )N)
null_value)
bool_valueinteger_value)double_valuestring_value)values)
list_valuec              3   <   K   | ]  \  }}|t        |      f  y wNjson_to_value).0kvs      r'   	<genexpr>z json_to_value.<locals>.<genexpr>2   s     +^daQa0@,A+^   fields)struct_valuezNot supported json value: )r   r   
NULL_VALUE
isinstanceboolintfloatstrlisttupler   r7   dictr   itemsr   r   r   r    )r)   r:   s     r'   r7   r7   #   s	   	 4 455'4 (('37++'5!'**'3'**'D%=)	G1Tq-2B1T UVV'4 t+^gmmo+^'^_
 	
 '8$
7D(A"4W"=>>
1';
<< 2Us   1Evaluec                 r   t        | t              rt        | d      }n| }d|v rt        |d         S d|v r|d   S d|v r|d   S d|v r|d   S d|v r/d|d   vri S t	        d	 |d   d   j                         D              S d
|v r!d|d
   v rt        d |d
   d   D              S g S d|v ry t        d|       )NF)preserving_proto_field_nameintegerValuedoubleValuestringValue	boolValuestructValuer>   c              3   <   K   | ]  \  }}|t        |      f  y wr5   value_to_jsonr8   keyvals      r'   r;   z value_to_json.<locals>.<genexpr>L   s#      
*2#sS-$%
r<   	listValuer2   c              3   2   K   | ]  }t        |        y wr5   rS   )r8   rW   s     r'   r;   z value_to_json.<locals>.<genexpr>Q   s     Tsc*Ts   	nullValuezNot supported value: )rA   r   r   rC   rH   rI   rF   r    )rJ   value_s     r'   rT   rT   9   s   %u%H 6.)**m$$m$$fk""6-00I 
6<]6KH6U6[6[6]
 
 	
 fvk**Tf[6I(6STTTIf
,VH5
66    c                 B    t        d | j                         D              S )Nc              3   <   K   | ]  \  }}|t        |      f  y wr5   r6   rU   s      r'   r;   z"payload_to_grpc.<locals>.<genexpr>Z   s     Jhc3mC()Jr<   rH   rI   )r)   s    r'   payload_to_grpcr`   Y   s    J'--/JJJr\   grpc_c                 B    t        d | j                         D              S )Nc              3   <   K   | ]  \  }}|t        |      f  y wr5   rS   rU   s      r'   r;   z"grpc_to_payload.<locals>.<genexpr>^   s     Hhc3mC()Hr<   r_   )ra   s    r'   grpc_to_payloadrd   ]   s    H%++-HHHr\   modelc                    | t         j                  j                  k(  rt         j                  j                  S | t         j                  j
                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                   S | t         j                  j"                  k(  rt         j                  j$                  S t'        d|        Nz!invalid PayloadSchemaType model: )r   PayloadSchemaTypeKeyword	FieldTypeFieldTypeKeywordIntegerFieldTypeIntegerFloatFieldTypeFloatBoolFieldTypeBoolGeoFieldTypeGeoTextFieldTypeTextDatetimeFieldTypeDatetimeUuidFieldTypeUuidr    re   s    r'   !grpc_payload_schema_to_field_typer{   a   s5   &&...~~...&&...~~...&&,,,~~,,,&&+++~~+++&&***~~***&&+++~~+++&&///~~///&&+++~~+++
8@
AAr\   c                    | t         j                  j                  k(  rt         j                  j                  S | t         j                  j
                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                  S | t         j                  j                  k(  rt         j                  j                   S | t         j                  j"                  k(  rt         j                  j$                  S t'        d|        )Nzinvalid FieldType model: )r   rj   rk   rh   ri   rm   rl   ro   rn   rq   rp   rs   rr   ru   rt   rw   rv   ry   rx   r    rz   s    r'   !grpc_field_type_to_payload_schemar}   v   s5   ///%%---///%%------%%+++,,,%%***+++%%))),,,%%***000%%...,,,%%***
08
99r\   c            	       v"   e Zd Zedej
                  dej
                  fd       Zedej                  dej                  fd       Z	edej                  dej                  fd       Zededefd       Zedej                  dej                  fd       Zedej"                  dej"                  fd       Zedej&                  dej&                  fd	       Zedej*                  dej*                  fd
       Zedej.                  dej0                  fd       Zedej4                  dej4                  fd       Zedej8                  dej8                  fd       Zedej8                  dej<                  fd       Zedej@                  dejB                  fd       Z"edejF                  dejF                  fd       Z$edejJ                  dejL                  fd       Z'ede(e)ejT                  f   de(e)ejV                  f   fd       Z,edejT                  dejV                  fd       Z-edej\                  dej^                  fd       Z0edejb                  dejb                  fd       Z2edejf                  dejf                  fd       Z4edejj                  dejj                  fd       Z6edejn                  dejn                  fd       Z8edejr                  dejr                  fd       Z:edejv                  dejx                  fd       Z=edej|                  dej|                  fd       Z?edej                  dej                  fd       ZAedej                  dej                  fd       ZCedej                  dej                  fd       ZEedej                  dej                  fd       ZGedej                  dej                  fd        ZIedej                  dej                  fd!       ZKedej                  dej                  fd"       ZMedej                  dej                  fd#       ZOedd$dej                  fd%       ZQedej                  dej                  fd&       ZSedej                  dej                  fd'       ZUedej                  dej                  fd(       ZWedej                  dej                  fd)       ZYedej                  dej                  fd*       Z[edejJ                  dejJ                  fd+       Z\edej                  dej                  fd,       Z^edej@                  dej@                  fd-       Z_edej                  dej                  fd.       Zaedej                  dej                  fd/       Zcedej                  dej                  fd0       Zeedej                  dej                  fd1       Zge	 ddej                  d3eiej                     dej                  fd4       Zkedej                  dej                  fd5       Znedej                  dej                  fd6       Zoedej                  dej                  fd7       Zredej                  dej                  fd8       Zsedej                  dej                  fd9       Zuedej                  dej                  fd:       Zwedej                  dej                  fd;       Zyedej                  dej                  fd<       Z{edej                  dej                  fd=       Z}edej                  dej                  fd>       Zedej                   dej                   fd?       Zedej                  deee   eee      ej                  f   fd@       Zedej                  de(e)ej                  f   fdA       Zedej                  dej                  fdB       Zedej                  dee   fdC       Zedej                  dej                  fdD       Zedej                   deee      fdE       Zedej$                  dej$                  fdF       Zedej(                  dej(                  fdG       Zedej,                  dej.                  fdH       Zedej2                  dej2                  fdI       Zedej6                  dej6                  fdJ       Zedej:                  dej:                  fdK       Zedej>                  dej>                  fdL       ZedejB                  dejB                  fdM       ZedejF                  dejH                  fdN       ZedejL                  dee)   fdO       ZedejP                  dejR                  fdP       ZedejV                  dejX                  fdQ       Zedej\                  dej^                  fdR       Zedejb                  dejd                  fdS       Zedejh                  dejj                  fdT       Zedejn                  dejp                  fdU       Zedejt                  dejp                  fdV       Zedejx                  dejx                  fdW       Zedej|                  dej|                  fdX       Zedej                  dej                  fdY       Zedej                  dej                  fdZ       Zedej                  dej                  fd[       Zedej                  dej                  fd\       Zedej                  dej                  fd]       Zed^ej                  dej                  fd_       Zedej                  dej                  fd`       Zedej                  dej                  fda       Zedej                  dej                  fdb       Zedej                  dej                  fdc       Zedej                  dej                  fdd       Zedej                  dej                  fde       Zedej                  dej                  fdf       Zedej                  dej                  fdg       Zedej                  dej                  fdh       Zedej                  dej                  fdi       Zedej                  dej                  fdj       Zedej                  dej                  fdk       Zedej                  dej                  fdl       Zedej                  dej                  fdm       Zedej                  dej                  fdn       Zedej                  dej                  fdo       Zedej                  dej                  fdp       Zedej                  dej                  fdq       Zedej                  dej                  fdr       Zedej                  dej                  fds       Zedej                  dej                  fdt       Zedej                  dej                  fdu       Zede)dej                  fdv       Zedej                  dej                  fdw       Zedej                   dej                  fdx       Zedej                  dej                  fdy       Zedej
                  dej
                  fdz       Zedej                  de(e)ej
                  f   fd{       Zedej                  dej                  fd|       Z
edej                  dej                  fd}       Zedej                  dej                  fd~       Zedej                  dej                  fd       Zedej                   dej                   fd       Zedej$                  dej$                  fd       Zedej(                  dej(                  fd       Zedej,                  dej.                  fd       Zedej2                  dej4                  fd       Zedej8                  dej8                  fd       Zedej<                  dej>                  fd       Z edejB                  dejD                  fd       Z#y2)
GrpcToRestre   r   c                    |j                  d      }|t        d|       t        ||      }|dk(  r| j                  |      S |dk(  r| j	                  |      S |dk(  r| j                  |      S |dk(  r| j                  |      S |dk(  r| j                  |      S |dk(  r| j                  |      S t        d|       )	Ncondition_one_ofinvalid Condition model: r   filterhas_idis_emptyis_nullnested)	
WhichOneofr    getattrconvert_field_conditionconvert_filterconvert_has_id_conditionconvert_is_empty_conditionconvert_is_null_conditionconvert_nested_conditionclsre   r#   rW   s       r'   convert_conditionzGrpcToRest.convert_condition   s     23<8@AAeT"7?..s338%%c**8//44:11#66900558//444UG<==r\   c                 *   t        j                  |j                  D cg c]  }| j                  |       c}|j                  D cg c]  }| j                  |       c}|j
                  D cg c]  }| j                  |       c}|j                  d      rat        j                  |j                  j                  D cg c]  }| j                  |       c}|j                  j                              S d       S c c}w c c}w c c}w c c}w )N
min_should
conditions	min_count)mustshouldmust_notr   )restFilterr   r   r   r   r   	MinShouldr   r   r   )r   re   	conditions      r'   r   zGrpcToRest.convert_filter   s    {{DIJJOy#''	2OFKllSC)))4SHMW9c++I6W >>,/  */)9)9)D)D % --i8  $..88
 	
 
 	
OSW s   DD
.D Dc                 &   t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                        S d       S Ngtgteltlte)r   r   r   r   )r   Ranger   r   r   r   r   r   re   s     r'   convert_rangezGrpcToRest.convert_range   sp    zz >>$/uxxT"^^E2		 >>$/uxxT"^^E2			
 	
 9=	
 	
r\   c                 B    |j                  t        j                        S )N)tzinfo)
ToDatetimer   utcr   s     r'   convert_timestampzGrpcToRest.convert_timestamp   s    x||44r\   c                    t        j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j
                        nd |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                              S d       S r   )r   DatetimeRanger   r   r   r   r   r   r   s     r'   convert_datetime_rangez!GrpcToRest.convert_datetime_range   s    !!27..2Fs$$UXX.D49NN54I%%eii0t27..2Fs$$UXX.D49NN54I%%eii0	
 	
 PT	
 	
r\   c                 v    t        j                  | j                  |j                        |j                        S N)centerradius)r   	GeoRadiusconvert_geo_pointr   r   r   s     r'   convert_geo_radiuszGrpcToRest.convert_geo_radius   )    ~~S%:%:5<<%HQVQ]Q]^^r\   c                 B    t        j                  |j                        S N)r#   )r   CollectionDescriptionr#   r   s     r'   convert_collection_descriptionz)GrpcToRest.convert_collection_description        ))uzz::r\   c                    t        j                  | j                  |j                        | j	                  |j
                        | j                  |j                        |j                  | j                  |j                        |j                  d      r|j                  nd |j                  |j                  xs d      S )Nvectors_countr   )configoptimizer_statuspayload_schemasegments_countstatusr   points_countindexed_vectors_count)r   CollectionInfoconvert_collection_configr   convert_optimizer_statusr   convert_payload_schemar   r   convert_collection_statusr   r   r   r   r   r   s     r'   convert_collection_infoz"GrpcToRest.convert_collection_info   s    ""00> 99%:P:PQ55e6J6JK //00>161P%--VZ++"'"="="B	
 		
r\   c                     |j                   rt        j                  j                  S t        j                  |j
                        S )N)error)okr   OptimizersStatusOneOfOKOptimizersStatusOneOf1r   r   s     r'   r   z#GrpcToRest.convert_optimizer_status   s0    88--000..U[[AAr\   c           	      `   t        j                  | j                  |j                        | j	                  |j
                        | j                  |j                        | j                  |j                        |j                  d      r | j                  |j                              S d       S )Nquantization_config)hnsw_configoptimizer_configparams
wal_configr   )r   CollectionConfigconvert_hnsw_configr   convert_optimizer_configr   convert_collection_paramsr   convert_wal_configr   r   convert_quantization_configr   r   s     r'   r   z$GrpcToRest.convert_collection_config   s    $$//0A0AB 99%:P:PQ00>--e.>.>? >>"78 //0I0IJ

 
	
 

 
	
r\   c           
         t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                        S d       S Nef_constructmfull_scan_thresholdmax_indexing_threadson_disk	payload_m)r   r   r   r   r   r   )	r   HnswConfigDiffr   r   r   r   r   r   r   r   s     r'   convert_hnsw_config_diffz#GrpcToRest.convert_hnsw_config_diff   s    ""/4~~n/M++SW,egg$-2^^<Q-R))X\ /4nn=S.T**Z^%*^^I%>EMMD).)Deoo
 	
 KO
 	
r\   c           
         t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                        S d       S r   )	r   
HnswConfigr   r   r   r   r   r   r   r   s     r'   r   zGrpcToRest.convert_hnsw_config  s    /4~~n/M++SW,egg$-2^^<Q-R))X\ /4nn=S.T**Z^%*^^I%>EMMD).)Deoo
 	
 KO
 	
r\   c                    t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  	      S d 	      S 
Ndefault_segment_numberdeleted_thresholdflush_interval_secindexing_thresholdmax_optimization_threadsmax_segment_sizememmap_thresholdvacuum_min_vector_numberr   r   r   r   r   r   r   r   )r   OptimizersConfigr   r   r   r   r   r   r   r   r   r   s     r'   r   z#GrpcToRest.convert_optimizer_config  s    $$05?W0X,,^b ,1>>:M+N''TX -2NN;O,P((VZ -2NN;O,P((VZ >>"<= .. +0..9K*L&&RV +0..9K*L&&RV >>"<= ..3
 	
6 7
 	
r\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       Nzinvalid Distance model: )r   DistanceCosiner   COSINEEuclidEUCLID	Manhattan	MANHATTANDotDOTr    r   s     r'   convert_distancezGrpcToRest.convert_distance6  s    DMM(((=='''dmm***=='''dmm---==***dmm'''==$$$7w?@@r\   c                     t        j                  |j                  d      r|j                  nd |j                  d      r|j                        S d       S Nwal_capacity_mbwal_segments_aheadr  r  )r   	WalConfigr   r  r  r   s     r'   r   zGrpcToRest.convert_wal_configC  sQ    ~~5:^^DU5VE11\`,1NN;O,P((
 	
 W[
 	
r\   c                 t    |j                         D ci c]  \  }}|| j                  |       c}}S c c}}w r5   )rI   convert_payload_schema_info)r   re   rV   infos       r'   r   z!GrpcToRest.convert_payload_schemaL  s4     MRKKMZysDS44T::ZZZs   4c                     t        j                  | j                  |j                        |j	                  d      r| j                  |j                        nd |j                        S )Nr   	data_typer   points)r   PayloadIndexInfoconvert_payload_schema_typer  r   convert_payload_schema_paramsr   r  r   s     r'   r	  z&GrpcToRest.convert_payload_schema_infoR  sS    $$55eooF >>(+ 11%,,?<<
 	
r\   c                    |j                  d      r|j                  }| j                  |      S |j                  d      r|j                  }| j	                  |      S |j                  d      r|j
                  }| j                  |      S |j                  d      r|j                  }| j                  |      S |j                  d      r|j                  }| j                  |      S |j                  d      r|j                  }| j                  |      S |j                  d      r|j                  }| j                  |      S |j                  d      r|j                  }	| j!                  |	      S t#        d	|       )
Ntext_index_paramsinteger_index_paramskeyword_index_paramsfloat_index_paramsgeo_index_paramsbool_index_paramsdatetime_index_paramsuuid_index_paramsz"invalid PayloadIndexParams model: )r   r  convert_text_index_paramsr  convert_integer_index_paramsr  convert_keyword_index_paramsr  convert_float_index_paramsr  convert_geo_index_paramsr  convert_bool_index_paramsr  convert_datetime_index_paramsr  convert_uuid_index_paramsr    )
r   re   r  r  r  r  r  r  r  r  s
             r'   r  z(GrpcToRest.convert_payload_schema_params^  so    >>-. % 7 7001BCC>>01#(#=#= 334HII>>01#(#=#= 334HII>>./!&!9!9112DEE>>,-$55//0@AA>>-. % 7 7001BCC>>12$)$?$?!445JKK>>-. % 7 7001BCC=eWEFFr\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                   S |t         j                  j"                  k(  rt        j                  j$                  S t'        d|       rg   )r   rh   rn   r   FLOATrr   GEOrl   INTEGERri   KEYWORDrp   BOOLrt   TEXTrv   DATETIMErx   UUIDr    r   s     r'   r  z&GrpcToRest.convert_payload_schema_type}  sE   D**000))///d,,000))---d,,444))111d,,444))111d,,111))...d,,111))...d,,555))222d,,111))...@HIIr\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       Nz invalid CollectionStatus model: )r   CollectionStatusGreenr   GREENYellowYELLOWRedREDGreyGREYr    r   s     r'   r   z$GrpcToRest.convert_collection_status  s    D))///((...d++222((///d++///((,,,d++000((---;E7CDDr\   c                 v    t        j                  |j                  | j                  |j                              S N)operation_idr   )r   UpdateResultr9  convert_update_statusr   r   s     r'   convert_update_resultz GrpcToRest.convert_update_result  s0      ++,,U\\:
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S t        d|       Nzinvalid UpdateStatus model: )r   UpdateStatusAcknowledgedr   ACKNOWLEDGED	Completed	COMPLETEDr    r   s     r'   r;  z GrpcToRest.convert_update_status  sa    D%%222$$111d''111$$...;E7CDDr\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w Nr   )r   HasIdConditionr   convert_point_idr   re   idxs      r'   r   z#GrpcToRest.convert_has_id_condition  s3    ""PUP\P\*]3+?+?+D*]^^*]   >c                     |j                  d      }|dk(  r|j                  S |dk(  r|j                  S t        d|       )Npoint_id_optionsnumuuidzinvalid PointId model: )r   rN  rO  r    )r   re   r#   s      r'   rH  zGrpcToRest.convert_point_id  sH     235=996>::25':;;r\   c                 B    t        j                  |j                        S N)
alias_name)r   DeleteAliasrR  r   s     r'   convert_delete_aliaszGrpcToRest.convert_delete_alias      5+;+;<<r\   c                 X    t        j                  |j                  |j                        S N)old_alias_namenew_alias_name)r   RenameAliasrX  rY  r   s     r'   convert_rename_aliaszGrpcToRest.convert_rename_alias  &     //@T@T
 	
r\   c                 j    t        j                  t        j                  |j                              S )NrV   r   )r   IsEmptyConditionPayloadFieldrV   r   s     r'   r   z%GrpcToRest.convert_is_empty_condition  s"    $$d.?.?EII.NOOr\   c                 j    t        j                  t        j                  |j                              S )Nr^  r   )r   IsNullConditionra  rV   r   s     r'   r   z$GrpcToRest.convert_is_null_condition  s"    ##D,=,=%)),LMMr\   c                     t        j                  t        j                  |j                  | j	                  |j
                                    S )NrV   r   r   )r   NestedConditionNestedrV   r   r   r   s     r'   r   z#GrpcToRest.convert_nested_condition  s:    ##;;II))%,,7
 	
r\   c                 D   t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r| j                  |j                        nd |j                  d      r|j                        S d       S )Nhnsw_efexactquantizationindexed_onlyrk  rl  rm  rn  )r   SearchParamsr   rk  rl  "convert_quantization_search_paramsrm  rn  r   s     r'   convert_search_paramsz GrpcToRest.convert_search_params  s      %*^^I%>EMMD!&!8%++d >>.1 66u7I7IJ/4~~n/M++	
 		
 TX	
 		
r\   c                 X    t        j                  |j                  |j                        S N)collection_namerR  )r   CreateAliasru  rR  r   s     r'   convert_create_aliaszGrpcToRest.convert_create_alias  "    0E0ERWRbRbccr\   c                     |j                  d      }|t        d|       t        ||      }|dk(  r|S |dk(  r|S t        d|       )Nvariantinvalid OrderValue model: rC   rD   r   r    r   r   s       r'   convert_order_valuezGrpcToRest.convert_order_value  sa    	*<9%ABBeT"5=J7?J5eW=>>r\   c                    t        t        j                  | j                  |j                        t        |d      r| j                  |j                        nd |j                  |j                  d      r| j                  |j                        nd |j                  |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                               S d       S )Nr)   vectors	shard_keyorder_value)idr)   scorevectorversionr  r  )r   r   ScoredPointrH  r  r(   convert_payloadr)   r  r   convert_vectorsr  r  convert_shard_keyr  r}  r  r   s     r'   convert_scored_pointzGrpcToRest.convert_scored_point  s    ##EHH-:CE9:UC''6[_++9>	9R3&&u}}5X\MM:?..:U%%eoo6[_ >>-0 ''(9(9:
 	
 
 	
r\   r   c                 ,    t        fdD              S )Nc              3   >   K   | ]  }|t        |         f  y wr5   rS   )r8   rV   re   s     r'   r;   z-GrpcToRest.convert_payload.<locals>.<genexpr>  s     FS-c
34Fs   )rH   r   s    `r'   r  zGrpcToRest.convert_payload  s    FFFFr\   c                 &   t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                        S d       S r   )r   ValuesCountr   r   r   r   r   r   s     r'   convert_values_countzGrpcToRest.convert_values_count  sr     >>$/uxxT"^^E2		 >>$/uxxT"^^E2			
 	
 9=	
 	
r\   c                     t        j                  | j                  |j                        | j                  |j                              S )N)bottom_righttop_left)r   GeoBoundingBoxr   r  r  r   s     r'   convert_geo_bounding_boxz#GrpcToRest.convert_geo_bounding_box  s;    ""..u/A/AB**5>>:
 	
r\   c                     t        j                  | j                  |j                        | j	                  |j
                        |j                  d      r | j                  |j                              S d       S )Nr  )r  r)   r  )	r   PointStructrH  r  r  r)   r   r  r  r   s     r'   convert_point_structzGrpcToRest.convert_point_struct  sg    ##EHH-''69>	9R3&&u}}5
 	
 Y]
 	
r\   c                 r   |j                  d      r| j                  |j                        nd }|j                  d      r| j                  |j                        nd }|j                  d      r| j                  |j                        nd }d }|j                  d      r| j                  |j                        }n,|j                  d      r| j                  |j                        }|j                  d      r| j                  |j                        nd }t        j                  |j                  |||||      S )Ngeo_bounding_box
geo_radiusmatchrangedatetime_rangevalues_count)rV   r  r  r  r  r  )r   r  r  r   r  convert_matchr  r   r  r   r  r  r  r   FieldConditionrV   )r   re   r  r  r  range_r  s          r'   r   z"GrpcToRest.convert_field_condition'  s    ~~01 (()?)?@ 	 9>|8TC""5#3#34Z^ 	 38..2I!!%++.t04>>'"&&u{{3F^^,-//0D0DEF ~~n- $$U%7%78 	 ""		-!%
 	
r\   c                    |j                  d      }|t        d|       t        ||      }|dk(  rt        j                  |      S |dk(  rt        j                  |      S |dk(  rt        j                  |      S |dk(  rt        j
                  |      S |d	k(  r)t        j                  t        |j                        
      S |dk(  r)t        j                  t        |j                        
      S |dk(  r*t        j                  di dt        |j                        iS |dk(  r*t        j                  di dt        |j                        iS t        d|       )Nmatch_valueinvalid Match model: integer)rJ   booleankeywordtextr  keywords)anyintegersexcept_keywordsexceptexcept_integers )r   r    r   r   
MatchValue	MatchTextMatchAnyrF   stringsr  MatchExceptr   s       r'   r  zGrpcToRest.convert_matchJ  s:   .<4UG<==eT"9??--9??--9??--6>>>s++:==T#++%677:==T#,,%788$$##Dxckk1B&CDD$$##Excll1C&DEE0899r\   c                     t        j                  |j                  d      r|j                  nd |j                  d      r|j                        S d       S r  )r   WalConfigDiffr   r  r  r   s     r'   convert_wal_config_diffz"GrpcToRest.convert_wal_config_diffc  sS    !!5:^^DU5VE11\`,1NN;O,P((
 	
 W[
 	
r\   c                 $   t        j                  |j                  d      r| j                  |j                        nd |j
                  |j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                              S d       S )Nvectors_configreplication_factorread_fan_out_factorwrite_consistency_factorsparse_vectors_configsharding_method)r  shard_numberon_disk_payloadr  r  r  sparse_vectorsr  )r   CollectionParamsr   convert_vectors_configr  r  r  r  r  r  convert_sparse_vector_configr  convert_sharding_methodr  r   s     r'   r   z$GrpcToRest.convert_collection_paramsl  s    $$ >>"23 **5+?+?@++!11,1NN;O,P((VZ .3^^<Q-R))X\ >>"<= .. ~~56 ;;E<W<WX~~/0  778M8MN-
 	
0 1
 	
r\   c                    t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j                  	      S d 	      S r   )r   OptimizersConfigDiffr   r   r   r   r   r   r   r   r   r   s     r'   convert_optimizers_config_diffz)GrpcToRest.convert_optimizers_config_diff  s     ((05?W0X,,^b ,1>>:M+N''TX -2NN;O,P((VZ -2NN;O,P((VZ >>"<= .. +0..9K*L&&RV +0..9K*L&&RV >>"<= ..3
 	
6 7
 	
r\   c           	         t        j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                              S d       S )Nr  optimizers_configr   r   r   )r  r  r   r   r   )r   UpdateCollectionr   convert_vectors_config_diffr  r  r  convert_collection_params_diffr   r   r    convert_quantization_config_diffr   r   s     r'   convert_update_collectionz$GrpcToRest.convert_update_collection  s    $$ >>"23 //0D0DE >>"56 2253J3JK >>(+ 225<<@ >>-0 ,,U->->? >>"78 44U5N5NO-
 	
0 1
 	
r\   c                 X    t        j                  |j                  |j                        S )N)latlon)r   GeoPointr  r  r   s     r'   r   zGrpcToRest.convert_geo_point  s!    }}				
 	
r\   c                 t   |j                  d      }|t        d|       t        ||      }|dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S t        d|       )	Nactioninvalid AliasOperations model: rename_aliasr  create_aliasr  delete_aliasr  )
r   r    r   r   RenameAliasOperationr[  CreateAliasOperationrw  DeleteAliasOperationrT  r   s       r'   convert_alias_operationsz#GrpcToRest.convert_alias_operations  s    )<>ugFGGeT">!,,#:R:RSV:WXX>!,,#:R:RSV:WXX>!,,#:R:RSV:WXX:5'BCCr\   c                 X    t        j                  |j                  |j                        S N)rR  ru  )r   AliasDescriptionrR  ru  r   s     r'   convert_alias_descriptionz$GrpcToRest.convert_alias_description  '    $$''!11
 	
r\   Nshard_key_selectorc                 ^   |j                  d      }|t        d|       t        ||      }|dk(  r>t        j                  |j
                  D cg c]  }| j                  |       c}|      S |dk(  r&t        j                  | j                  |      |      S t        d|       c c}w )Npoints_selector_one_ofinvalid PointsSelector model: r  r  r  r   )r   r  )	r   r    r   r   PointIdsListidsrH  FilterSelectorr   )r   re   r  r#   rW   points         r'   convert_points_selectorz"GrpcToRest.convert_points_selector  s      89<=eWEFFeT"8$$ADI,,U3I,  8&&))#.,  9%ABB Js   B*c                    |j                  d      }|t        d|       t        ||      }|dk(  r|S |dk(  rt        |j                        S |dk(  r)t        j                  t        |j                              S t        d|       )Nselector_optionsz#invalid WithPayloadSelector model: enableincludeexcluder  )r   r    r   rF   r>   r   PayloadSelectorExcluder   s       r'   convert_with_payload_selectorz(GrpcToRest.convert_with_payload_selector  s      23<B5'JKKeT"8J9

##9..tCJJ7GHH>ugFGGr\   c                 $    | j                  |      S r5   )r  r   s     r'   convert_with_payload_interfacez)GrpcToRest.convert_with_payload_interface  s     0077r\   c           	         t        j                  | j                  |j                        | j	                  |j
                        |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                              S d       S )Nr  r  r  )r  r)   r  r  r  )r   RecordrH  r  r  r)   r   r  r  r  r  r}  r  r   s     r'   convert_retrieved_pointz"GrpcToRest.convert_retrieved_point  s    {{##EHH-''69>	9R3&&u}}5X\:?..:U%%eoo6[_ >>-0 ''(9(9:
 	
 
 	
r\   c                 $    | j                  |      S r5   )r  r   s     r'   convert_recordzGrpcToRest.convert_record%  s    **511r\   c                 B    t        j                  |j                        S N)count)r   CountResultr  r   s     r'   convert_count_resultzGrpcToRest.convert_count_result)      ekk22r\   c                     t        j                  |j                  |j                  d      r(|j                  j                         j                         nd |j                        S )Ncreation_timer#   r  size)r   SnapshotDescriptionr#   r   r  r   	isoformatr	  r   s     r'   convert_snapshot_descriptionz'GrpcToRest.convert_snapshot_description-  sS     '' >>/2 ##..0::<
 	
r\   c                 h   |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       Nzinvalid Datatype model: )
r   DatatypeFloat32r   FLOAT32Uint8UINT8Float16FLOAT16r    r   s     r'   convert_datatypezGrpcToRest.convert_datatype;  s{    DMM)))==(((dmm)))==&&&dmm+++==(((7w?@@r\   c                 $   t        j                  |j                  | j                  |j                        |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r| j                  |j                        nd |j                  d      r | j                  |j                              S d       S )Nr   r   r   datatypemultivector_configr	  distancer   r   r   r  r  )r   VectorParamsr	  r  r  r   r   r   r   r   r   r  r  convert_multivector_configr  r   s     r'   convert_vector_paramsz GrpcToRest.convert_vector_paramsF  s      ))%..9 >>-0 ,,U->->? >>"78 //0I0IJ%*^^I%>EMMD=B^^J=WS))%..9]a >>"67 ..u/G/GH!
 	
$ %
 	
r\   c                 `    t        j                  | j                  |j                              S N)
comparator)r   MultiVectorConfigconvert_multivector_comparatorr!  r   s     r'   r  z%GrpcToRest.convert_multivector_config^  )    %%99%:J:JK
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S t        d|       Nz%invalid MultiVectorComparator model: )r   MultiVectorComparatorMaxSimr   MAX_SIMr    r   s     r'   r#  z)GrpcToRest.convert_multivector_comparatord  s=     D..555--555@HIIr\   c                     |j                  d      }|t        d|       t        ||      }|dk(  r j                  |      S |dk(  r,t	         fd|j
                  j                         D              S t        d|       )Nr   invalid VectorsConfig model: r   
params_mapc              3   J   K   | ]  \  }}|j                  |      f  y wr5   r  r8   rV   
vec_paramsr   s      r'   r;   z4GrpcToRest.convert_vectors_config.<locals>.<genexpr>w  s*      APjc//
;<    #)r   r    r   r  rH   maprI   r   s   `   r'   r  z!GrpcToRest.convert_vectors_configm  s    )<<UGDEEeT"8,,S11< TWT[T[TaTaTc   8@AAr\   c                    |j                  d      r;t        j                  |j                  j                  d d  |j                  d d        S |j                  d      rP|j
                  }|j                  }t        |      |z  }t        dt        |      |      D cg c]
  }||||z     c}S |j                  d d  S c c}w )Nindicesr4  r2   r   r   )r   r   SparseVectorr4  datar   lenr  )r   re   r   r  stepis         r'   convert_vectorzGrpcToRest.convert_vector|  s     >>)$$$U]]-?-?-B5::VW=YY>>/*!//MjjGw<=0D38CL$3OPaGAD)PPzz!} Qs   B=c                 v    i }|j                   j                         D ]  \  }}| j                  |      ||<    |S r5   )r  rI   r;  )r   re   r  r#   r  s        r'   convert_named_vectorsz GrpcToRest.convert_named_vectors  sB    !MM//1 	7LD&..v6GDM	7 r\   c                     |j                  d      }|t        d|       t        ||      }|dk(  r| j                  |      S |dk(  r| j	                  |      S t        d|       )Nvectors_optionszinvalid Vectors model: r  r  )r   r    r   r;  r=  r   s       r'   r  zGrpcToRest.convert_vectors  s|     12<6ug>??eT"8%%c**9,,S1125':;;r\   c                      |j                   d d  S r5   r7  r   s     r'   convert_dense_vectorzGrpcToRest.convert_dense_vector  s    zz!}r\   c                 d    t        j                  |j                  d d  |j                  d d        S )Nr5  )r   r6  r4  r2   r   s     r'   convert_sparse_vectorz GrpcToRest.convert_sparse_vector  s&      q)9%,,q/RRr\   c                 ^    |j                   D cg c]  }| j                  |       c}S c c}w r5   )r  rB  r   re   r  s      r'   convert_multi_dense_vectorz%GrpcToRest.convert_multi_dense_vector  s%    ?D}}MV((0MMM   *c                 (   |j                  d      }|t        d|       t        ||      }|dk(  r| j                  |      S |dk(  r| j	                  |      S |dk(  r| j                  |      S |dk(  r| j                  |      S t        d|       )Nrz  invalid VectorInput model: r  densesparsemulti_dense)r   r    r   rH  rB  rD  rG  r   s       r'   convert_vector_inputzGrpcToRest.convert_vector_input  s    	*<:5'BCCeT"4<'',,7?++C008,,S11= 11#666ug>??r\   c           	      D   t        j                  |j                  D cg c]  }| j                  |       c}|j                  D cg c]  }| j                  |       c}|j                  d      r | j                  |j                              S d       S c c}w c c}w )NstrategypositivenegativerP  )r   RecommendInputrR  rN  rS  r   convert_recommend_strategyrP  rF  s      r'   convert_recommend_inputz"GrpcToRest.convert_recommend_input  s    ""EJ^^T6c..v6TEJ^^T6c..v6T~~j) 33ENNC
 	

 
 	
TTs   BB
c                     t        j                  | j                  |j                        | j                  |j                              S N)rR  rS  )r   ContextPairrN  rR  rS  r   s     r'   convert_context_input_pairz%GrpcToRest.convert_context_input_pair  s9    --enn=--enn=
 	
r\   c                 ^    |j                   D cg c]  }| j                  |       c}S c c}w r5   )pairsrZ  r   re   pairs      r'   convert_context_inputz GrpcToRest.convert_context_input  s%    AFM..t4MMMrH  c                     t        j                  | j                  |j                        | j	                  |j
                              S N)targetcontext)r   DiscoverInputrN  rb  r_  rc  r   s     r'   convert_discover_inputz!GrpcToRest.convert_discover_input  9    !!++ELL9--emm<
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       Nzinvalid Fusion model: )r   FusionRRFr   DBSFr    r   s     r'   convert_fusionzGrpcToRest.convert_fusion  U    DKKOO#;;??"DKK$$$;;###1%9::r\   c                     |t         j                  j                  k(  rt        j                  j                  S t        d|       Nzinvalid Sample model: )r   SampleRandomr   RANDOMr    r   s     r'   convert_samplezGrpcToRest.convert_sample  7    DKK&&&;;%%%1%9::r\   c                    |j                  d      }|t        d|       t        ||      }|dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |d	k(  r%t        j                  | j                  |      
      S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                   | j#                  |            S t        d|       )Nrz  invalid Query model: nearestrw  	recommendry  discoverr{  rc  rc  order_byr~  fusionr  sampler  )r   r    r   r   NearestQueryrN  RecommendQueryrV  DiscoverQueryre  ContextQueryr_  OrderByQueryconvert_order_byFusionQueryrl  SampleQueryrs  r   s       r'   convert_queryzGrpcToRest.convert_query  sE   	*<4UG<==eT"9$$S-E-Ec-JKK;&&1L1LS1QRR:%%s/I/I#/NOO9$$S-F-Fs-KLL:$$c.B.B3.GHH8##3+=+=c+BCC8##3+=+=c+BCC0899r\   c                    t        j                  t        |j                        dk7  r)|j                  D cg c]  }| j	                  |       c}nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r | j                  |j                         	      S d 	      S c c}w )
Nr   queryusingr   r   score_thresholdlimitlookup_fromprefetchr  r  r   r   r  r  r  )r   Prefetchr8  r  convert_prefetch_queryr   r  r  r  r   r   rr  r   r  r  convert_lookup_locationr  r   re   r  s      r'   r  z!GrpcToRest.convert_prefetch_query  s   }}5>>"a' LQ>>Zxc00:Z49NN74K###EKK0QU!&!8%++d7<~~h7O3%%ell3UY>CnnX>V3,,U\\:\`5:^^DU5VE11\`!&!8%++d~~m, 33E4E4EF
 	
 
 	
Zs   E+c                      |j                   d d  S r5   namesr   s     r'   convert_vectors_selectorz#GrpcToRest.convert_vectors_selector  s    {{1~r\   c                     |j                  d      }|t        d|       t        ||      }|dk(  r|S |dk(  r| j                  |      S t        d|       )Nr  z#invalid WithVectorsSelector model: r  r  )r   r    r   r  r   s       r'   convert_with_vectors_selectorz(GrpcToRest.convert_with_vectors_selector  sp     23<B5'JKKeT"8J9//44>ugFGGr\   c                    t        j                  t        j                  |j                  |j                  d d        |j                  d      r| j                  |j                        nd |j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r| j                  |j                         nd |j                  d      r | j#                  |j$                        		      S d 		      S )
N)r#   r  r   with_payloadr   r  offsetwith_vectorsr  )	r  r   r  r  r   r  r  with_vectorr  )r   SearchRequestNamedVectorvector_namer  r   r   r   r  r  r  rr  r   r  r  r  r  convert_shard_key_selectorr  r   s     r'   convert_search_pointsz GrpcToRest.convert_search_points(  s)   !!##):):5<<PQ?S7<~~h7O3%%ell3UY++ >>.1 2253E3EF>CnnX>V3,,U\\:\`5:^^DU5VE11\`#(>>(#;5<< >>.1 11%2D2DE >>"67 ..u/G/GH%
 	
( )
 	
r\   c                 *   t        j                  |j                  d      r| j                  |j                        nd t        |j                        dk7  r)|j                  D cg c]  }| j                  |       c}nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r|j                   nd |j                  d	      r|j"                  nd |j                  d
      r| j%                  |j&                        nd |j                  d      r| j)                  |j*                        nd |j                  d      r | j-                  |j.                              S d       S c c}w )Nr  r   r  r  r   r   r  r  r  r  r  r  )r  r  r  r  r   r   r  r  r  r  r  r  )r   QueryRequestr   r  r  r8  r  r  r  r  r  r   r   rr  r   r  r  r  r  r  r  r  r  r  r  s      r'   convert_query_pointszGrpcToRest.convert_query_pointsB  s      >>"67 ..u/G/GH 5>>"a' LQ>>Zxc00:Z49NN74K###EKK0QU!&!8%++d7<~~h7O3%%ell3UY>CnnX>V3,,U\\:\`5:^^DU5VE11\`!&!8%++d#(>>(#;5<< >>.1 11%2D2DE >>.1 2253E3EF >>-0 ++E,=,=>7
 	
: ;
 	
 [s   #H
c                    |j                   D cg c]  }| j                  |       }}|j                  D cg c]  }| j                  |       }}|j                  D cg c]  }| j	                  |       }}|j
                  D cg c]  }| j	                  |       }}t        j                  ||z   ||z   |j                  d      r| j                  |j                        nd |j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                   nd |j                  d      r|j"                  nd |j                  d      r| j%                  |j&                        nd |j(                  |j                  d      r| j+                  |j,                        nd |j                  d      r| j/                  |j0                        nd |j                  d	      r | j3                  |j4                        
      S d 
      S c c}w c c}w c c}w c c}w )Nr   r  r   r  r  r  r  rP  r  )rR  rS  r   r  r  r   r  r  r  r  r  rP  r  )rR  rH  rS  positive_vectorsr;  negative_vectorsr   RecommendRequestr   r   r   r  r  r  rr  r   r  r  r  r  r  r  r  rU  rP  r  r  )r   re   point_idpositive_idsnegative_idsr  r  r  s           r'   convert_recommend_pointsz#GrpcToRest.convert_recommend_pointse  s   GL~~V8,,X6VVGL~~V8,,X6VVEJE[E[\6C..v6\\EJE[E[\6C..v6\\$$!$44!$447<~~h7O3%%ell3UY++ >>.1 2253E3EF>CnnX>V3,,U\\:\`5:^^DU5VE11\`#(>>(#;5<< >>.1 11%2D2DE++ >>-0 ++E,=,=> >>*- ..u~~> >>"67 ..u/G/GH="
 "	
@ A"
 "	
 WV\\s   IIIIc                 t   |j                  d      r| j                  |j                        nd }|j                  D cg c]  }| j	                  |       }}t        j                  |||j                  d      r| j                  |j                        nd |j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                  nd |j                  d      r| j                  |j                         nd |j"                  |j                  d      r| j%                  |j&                        nd |j                  d      r | j)                  |j*                        	      S d 	      S c c}w )
Nrb  r   r  r   r  r  r  r  )rb  rc  r   r  r  r   r  r  r  r  r  )r   convert_target_vectorrb  rc  convert_context_example_pairr   DiscoverRequestr   r   r  r  r  rr  r   r  r  r  r  r  r  r  r  )r   re   rb  r^  rc  s        r'   convert_discover_pointsz"GrpcToRest.convert_discover_points  sp   <ANN8<T**5<<8Z^FKmmTd333D9TT##7<~~h7O3%%ell3UY++ >>.1 2253E3EF>CnnX>V3,,U\\:\`#(>>(#;5<< >>.1 11%2D2DE++ >>-0 ++E,=,=> >>"67 ..u/G/GH1
 	
4 5
 	
 Us   F5c                     |j                  d      r| j                  |j                        S |j                  d      r| j                  |j                        S t        d|       )Nr  r  zinvalid VectorExample model: )r   r;  r  rH  r  r    r   s     r'   convert_vector_examplez!GrpcToRest.convert_vector_example  sW    >>(#%%ell33>>$''118@AAr\   c                 v    |j                  d      r| j                  |j                        S t        d|       )Nsinglezinvalid TargetVector model: )r   r  r  r    r   s     r'   r  z GrpcToRest.convert_target_vector  s6    >>(#--ell;;7w?@@r\   c                     t        j                  | j                  |j                        | j                  |j                              S rX  )r   ContextExamplePairr  rR  rS  r   s     r'   r  z'GrpcToRest.convert_context_example_pair  s;     &&//?//?
 	
r\   c                    |t         j                  k(  rt        j                  j                  S |t         j
                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S t        d|       Nzinvalid TokenizerType model: )r   Prefixr   TokenizerTypePREFIX
Whitespace
WHITESPACEWordWORDMultilingualMULTILINGUALr    r   s     r'   convert_tokenizer_typez!GrpcToRest.convert_tokenizer_type  s    DKK%%,,,DOO#%%000DII%%***D%%%%%2228@AAr\   c           	          t        j                  d| j                  |j                        |j	                  d      r|j
                  nd |j	                  d      r|j                  nd |j	                  d      r|j                        S d       S )Nr  min_token_lenmax_token_len	lowercase)type	tokenizerr  r  r  )r   TextIndexParamsr  r  r   r  r  r  r   s     r'   r  z$GrpcToRest.convert_text_index_params  s{    ##00A161P%--VZ161P%--VZ).)Deoo
 	

 KO
 	
r\   c           	         t        j                  t         j                  j                  |j                  |j
                  |j                  d      r|j                  nd |j                  d      r|j                        S d       S )Nis_principalr   )r  r  lookupr  r   )	r   IntegerIndexParamsIntegerIndexTyper&  r  r  r   r  r   r   s     r'   r  z'GrpcToRest.convert_integer_index_params  sn     &&&&..++<</4~~n/M++SW%*^^I%>EMM
 	

 EI
 	
r\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                  nd |j	                  d      r|j                        S d       S N	is_tenantr   )r  r  r   )r   KeywordIndexParamsKeywordIndexTyper'  r   r  r   r   s     r'   r  z'GrpcToRest.convert_keyword_index_params  s]     &&&&..).)Deoo$%*^^I%>EMM
 	
 EI
 	
r\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                  nd |j	                  d      r|j                        S d       S Nr  r   )r  r  r   )r   FloatIndexParamsFloatIndexTyper$  r   r  r   r   s     r'   r  z%GrpcToRest.convert_float_index_params  s^    $$$$**/4~~n/M++SW%*^^I%>EMM
 	
 EI
 	
r\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                        S d       S )Nr   )r  r   )r   GeoIndexParamsGeoIndexTyper%  r   r   r   s     r'   r  z#GrpcToRest.convert_geo_index_params   sC    """"&&%*^^I%>EMM
 	
DH
 	
r\   _c                 ^    t        j                  t         j                  j                        S )Nr  )r   BoolIndexParamsBoolIndexTyper(  r   r  s     r'   r   z$GrpcToRest.convert_bool_index_params  s$    ####((
 	
r\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                  nd |j	                  d      r|j                        S d       S r  )r   DatetimeIndexParamsDatetimeIndexTyper*  r   r  r   r   s     r'   r!  z(GrpcToRest.convert_datetime_index_params  s`     ''''00/4~~n/M++SW%*^^I%>EMM
 	
 EI
 	
r\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                  nd |j	                  d      r|j                        S d       S r  )r   UuidIndexParamsUuidIndexTyper+  r   r  r   r   s     r'   r"  z$GrpcToRest.convert_uuid_index_params  s[    ####(().)Deoo$%*^^I%>EMM
 	
 EI
 	
r\   c                 &   t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                  nd |j                  d      r|j                        S d       S )Nr  r  r  r  )r  r  r  r  )r   CollectionParamsDiffr   r  r  r  r  r   s     r'   r  z)GrpcToRest.convert_collection_params_diff  s     ((,1NN;O,P((VZ >>"<= .. .3^^<Q-R))X\5:^^DU5VE11
 	
 ]a
 	
r\   c                     t        j                  |j                  |j                  d      r|j                        S d       S )Nr  )
collectionr  )r   LookupLocationru  r   r  r   s     r'   r  z"GrpcToRest.convert_lookup_location2  s?    "",,(-}(E5$$
 	
KO
 	
r\   c                    |j                   t        j                  j                  k(  rt        j
                  j                  S |j                   t        j                  j                  k(  rt        j
                  j                  S |j                   t        j                  j                  k(  rt        j
                  j                  S t        d|       )Ninvalid WriteOrdering model: )r  r   WriteOrderingTypeWeakr   WriteOrderingWEAKMediumMEDIUMStrongSTRONGr    r   s     r'   convert_write_orderingz!GrpcToRest.convert_write_ordering9  s    :://444%%***:://666%%,,,:://666%%,,,8@AAr\   c                     |j                  d      }|t        d|       t        ||      }|dk(  r|S |dk(  r| j                  |      S t        d|       )NrJ   invalid ReadConsistency model: factorr  )r   r    r   convert_read_consistency_typer   s       r'   convert_read_consistencyz#GrpcToRest.convert_read_consistencyC  sn    (<>ugFGGeT"8J6>44S99:5'BCCr\   c                 ,   |t         j                  k(  rt        j                  j                  S |t         j
                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S t        d|       Nz#invalid ReadConsistencyType model: )
r   Allr   ReadConsistencyTypeALLMajorityMAJORITYQuorumQUORUMr    r   s     r'   r  z(GrpcToRest.convert_read_consistency_typeO  sq     DHH++///DMM!++444DKK++222>ugFGGr\   c                     t        j                  t         j                  j                  |j	                  d      r|j
                  nd |j	                  d      r|j                        S d       S )Nquantile
always_ramr  r  r  )r   ScalarQuantizationConfig
ScalarTypeINT8r   r  r  r   s     r'   "convert_scalar_quantization_configz-GrpcToRest.convert_scalar_quantization_config[  s]     ,,%%',~~j'AU^^t+0>>,+Gu''
 	
 NR
 	
r\   c                     t        j                  | j                  |j                        |j	                  d      r|j
                        S d       S )Nr  compressionr  )r   ProductQuantizationConfigconvert_compression_ratior  r   r  r   s     r'   #convert_product_quantization_configz.GrpcToRest.convert_product_quantization_confige  sL     --55e6G6GH+0>>,+Gu''
 	
MQ
 	
r\   c                 r    t        j                  |j                  d      r|j                        S d       S )Nr  r  )r   BinaryQuantizationConfigr   r  r   s     r'   "convert_binary_quantization_configz-GrpcToRest.convert_binary_quantization_confign  s8     ,,+0>>,+Gu''
 	
MQ
 	
r\   c                    |t         j                  k(  rt        j                  j                  S |t         j
                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S |t         j                  k(  rt        j                  j                  S t        d|       Nz invalid CompressionRatio model: )r   x4r   CompressionRatioX4x8X8x16X16x32X32x64X64r    r   s     r'   r  z$GrpcToRest.convert_compression_ratiov  s    DGG((+++DGG((+++DHH((,,,DHH((,,,DHH((,,,;E7CDDr\   c                 t   |j                  d      }|t        d|       t        ||      }|dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S t        d|       )	Nrm  "invalid QuantizationConfig model: scalarr.  productr0  binaryr2  )
r   r    r   r   ScalarQuantizationr  ProductQuantizationr  BinaryQuantizationr  r   s       r'   r   z&GrpcToRest.convert_quantization_config  s     /<A%IJJeT"8**#2X2XY\2]^^9++C4[4[\_4`aa8**#2X2XY\2]^^=eWEFFr\   c                     t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r|j
                        S d       S )Nignorerescoreoversamplingr8  r9  r:  )r   QuantizationSearchParamsr   r8  r9  r:  r   s     r'   rq  z-GrpcToRest.convert_quantization_search_params  sd     ,,#(>>(#;5<<%*^^I%>EMMD/4~~n/M++
 	
 TX
 	
r\   c                     t        j                  | j                  |j                        | j	                  |j
                              S )N)r  r  )r   PointVectorsrH  r  r  r  r   s     r'   convert_point_vectorsz GrpcToRest.convert_point_vectors  s9      ##EHH-&&u}}5
 	
r\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w N)groups)r   GroupsResultrB  convert_point_groupr   re   groups      r'   convert_groups_resultz GrpcToRest.convert_groups_result  5      @EMuC++E2M
 	
MrK  c           	         t        j                  | j                  |j                        |j                  D cg c]  }| j                  |       c}|j                  d      r | j                  |j                              S d       S c c}w )Nr  r  hitsr  )	r   
PointGroupconvert_group_idr  rK  r  r   r  r  )r   re   hits      r'   rD  zGrpcToRest.convert_point_group  ss    ##EHH-;@::FC#**3/F7<~~h7O3%%ell3
 	
 VZ
 	
Fs   B

c                 `    |j                  d      }|t        d|       t        ||      }|S )Nkindinvalid GroupId model: r|  r   s       r'   rM  zGrpcToRest.convert_group_id  s;    '<6ug>??eT"
r\   c                     t        j                  |j                  |j                  d      r| j	                  |j
                        nd |j                  d      r | j                  |j                              S d       S )Nr  r  )r  r  r  )r   
WithLookupr  r   r  r  r  r  r   s     r'   convert_with_lookupzGrpcToRest.convert_with_lookup  sv    '' >>.1 11%2D2DE >>.1 11%2D2DE
 	
 
 	
r\   c                    |j                  d      }|t        d|       t        ||      }|dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |dk(  r%t        j                  | j                  |            S |d	k(  rt        j                  j                  S t        d|       )
Nrm  &invalid QuantizationConfigDiff model: r.  r/  r0  r1  r2  r3  disabled)r   r    r   r   r4  r  r5  r  r6  r  DisabledDISABLEDr   s       r'   r  z+GrpcToRest.convert_quantization_config_diff  s     /<EeWMNNeT"8**#2X2XY\2]^^9++C4[4[\_4`aa8**#2X2XY\2]^^:==)))A%IJJr\   c                 &   t        j                  |j                  d      r| j                  |j                        nd |j                  d      r| j                  |j                        nd |j                  d      r|j                        S d       S )Nr   r   r   r   r   r   )r   VectorParamsDiffr   r   r   r  r   r   r   s     r'   convert_vector_params_diffz%GrpcToRest.convert_vector_params_diff  s    $$ >>-0 ,,U->->? >>"78 44U5N5NO%*^^I%>EMM
 	
 EI
 	
r\   c                     |j                  d      }|t        d|       t        ||      }|dk(  rd j                  |      iS |dk(  r,t	         fd|j
                  j                         D              S t        d|       )Nr   !invalid VectorsConfigDiff model: r    r,  c              3   J   K   | ]  \  }}|j                  |      f  y wr5   r]  r/  s      r'   r;   z9GrpcToRest.convert_vectors_config_diff.<locals>.<genexpr>  s-      #C c44Z@Ar1  )r   r    r   r]  rH   r2  rI   r   s   `   r'   r  z&GrpcToRest.convert_vectors_config_diff  s    )<@HIIeT"866s;<<< '*ww}}   <UGDEEr\   c           
      P   |j                  d      }|t        d|       t        ||      }|dk(  r|j                  d      r| j	                  |j
                        nd }t        j                  t        j                  |j                  D cg c]  }| j                  |       c}|            S |dk(  rR|j                  d      r|j
                  nd }| j                  |j                  |      }t        j                  |	      S |d
k(  r|j                  d      r|j
                  nd }| j                  |j                  |      }d }d }t        |t        j                        r|j                  }n5t        |t        j                         r|j"                  }nt        d|       t        j$                  t        j&                  | j)                  |j*                        ||            S |dk(  r|j                  d      r|j
                  nd }| j                  |j                  |      }d }d }t        |t        j                        r|j                  }n5t        |t        j                         r|j"                  }nt        d|       t        j,                  t        j&                  | j)                  |j*                        ||            S |dk(  r|j                  d      r|j
                  nd }| j                  |j                  |      }d }d }t        |t        j                        r|j                  }n5t        |t        j                         r|j"                  }nt        d|       t        j.                  t        j0                  |j2                  D 	cg c]  }	|	 c}	||            S |dk(  rR|j                  d      r|j
                  nd }| j                  |j                  |      }t        j4                  |      S |dk(  r|j                  d      r| j	                  |j
                        nd }t        j6                  t        j8                  |j                  D cg c]  }| j;                  |       c}|            S |dk(  r|j                  d      r|j
                  nd }| j                  |j                  |      }d }d }t        |t        j                        r|j                  }n5t        |t        j                         r|j"                  }nt        d|       t        j<                  t        j>                  |j@                  jB                  D cg c]  }| c}||            S t        d|       c c}w c c}	w c c}w c c}w )N	operationz%invalid PointsUpdateOperation model: upsertr  r  re  delete_points)r  )deleteset_payloadr  )r)   r  r   ri  overwrite_payloadrk  delete_payload)keysr  r   rm  clear_payloadrp  update_vectorsrr  delete_vectors)r  r  r   rt  invalid UpdateOperation model: )"r   r    r   r   r  r  r   UpsertOperation
PointsListr  r  r  DeleteOperationpoints_selectorrA   r  r  r   SetPayloadOperation
SetPayloadr  r)   OverwritePayloadOperationDeletePayloadOperationDeletePayloadrn  ClearPayloadOperationUpdateVectorsOperationUpdateVectorsr?  DeleteVectorsOperationDeleteVectorsr  r  )
r   re   r#   rW   r  r  rz  r  filter_rV   s
             r'   convert_points_update_operationz*GrpcToRest.convert_points_update_operation  s    ,<DUGLMMeT"8 << 45 %%c&<&<= 
 ''ILTC44U;T0  _$*-,,7K*L&&RV  "99

/A : O ''??]"*-,,7K*L&&RV  "99##8J : O FG/4+<+<=(//OT-@-@A)00 4_4EF  ++ OO//<!"  ((*-,,7K*L&&RV  "99##8J : O FG/4+<+<=(//OT-@-@A)00 4_4EF  11"&////<!"#  %%*-,,7K*L&&RV  "99##8J : O FG/4+<+<=(//OT-@-@A)00 4_4EF  ..#11),2##2!"   _$*-,,7K*L&&RV  "99

/A : O --OLL%% << 45 %%c&<&<= 
 ..#11JM**UC55e<U0   %%*-,,7K*L&&RV  "99##8J : O FG/4+<+<=(//OT-@-@A)00 4_4EF  ..#11-0[[->->?TD?!"   >ugFGGK Ud 3* V0 @s   V#	V1V.	V#c                 j    t        |t              rt        j                  |      S t	        d|       )N)r  zInvalid InitFrom model: )rA   rE   r   InitFromr    r   s     r'   convert_init_fromzGrpcToRest.convert_init_from  s.    eS!==E223E7;<<r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S t        d|       Nz!invalid RecommendStrategy model: )r   RecommendStrategyAverageVectorr   AVERAGE_VECTOR	BestScore
BEST_SCOREr    r   s     r'   rU  z%GrpcToRest.convert_recommend_strategy  sa    D**888))888D**444))444<UGDEEr\   c                    t        j                  |j                  d      r|j                  nd |j                  d      r|j                  nd |j                  d      r | j                  |j                              S d       S )Nr   r   r  r   r   r  )r   SparseIndexParamsr   r   r   r  r  r   s     r'   convert_sparse_index_configz&GrpcToRest.convert_sparse_index_config  so    %%-2^^<Q-R))X\%*^^I%>EMMD=B^^J=WS))%..9
 	

 ^b
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t        t         j                  d      k(  rt        j                  j                  S t        d|       NNonezinvalid Modifier model: )r   ModifierIdfr   IDFr   NONEr    r   s     r'   convert_modifierzGrpcToRest.convert_modifier  sZ    DMM%%%==$$$GDMM622==%%%3E7;<<r\   c                     t        j                  |j                  d      | j                  |j                        nd |j                  d      r | j                  |j                              S d       S )Nindexmodifierr  r  )r   SparseVectorParamsr   r  r  r  r  r   s     r'   convert_sparse_vector_paramsz'GrpcToRest.convert_sparse_vector_params  so     && >>'*6 //< 9>z8R$$U^^4	
 		
 Y]	
 		
r\   c                 \     t         fd|j                  j                         D              S )Nc              3   J   K   | ]  \  }}|j                  |      f  y wr5   r  r8   rV   rW   r   s      r'   r;   z:GrpcToRest.convert_sparse_vector_config.<locals>.<genexpr>  s%     cXS#S#::3?@cr1  )rH   r2  rI   r   s   ` r'   r  z'GrpcToRest.convert_sparse_vector_config  s&     cQVQZQZQ`Q`Qbcccr\   c                 `    |j                  d      }|t        d|       t        ||      }|S )NrV   invalid ShardKey model: r|  r   s       r'   r  zGrpcToRest.convert_shard_key  s;    &<7w?@@eT"
r\   c                     t        |j                        dk(  r| j                  |j                  d         S |j                  D cg c]  }| j                  |       c}S c c}w )N   r   )r8  
shard_keysr  )r   re   r  s      r'   r  z%GrpcToRest.convert_shard_key_selector  sV    u A%(()9)9!)<==BGBRBRSY%%i0SSSs   A c                     |t         j                  k(  rt        j                  j                  S |t         j
                  k(  rt        j                  j                  S t        d|       Nzinvalid ShardingMethod model: )r   Autor   ShardingMethodAUTOCustomCUSTOMr    r   s     r'   r  z"GrpcToRest.convert_sharding_method  sQ    DII&&+++DKK&&---9%ABBr\   c                     |t         j                  k(  rt        j                  j                  S |t         j
                  k(  rt        j                  j                  S t        d|       Nzinvalid Direction model: )r   Ascr   	DirectionASCDescDESCr    r   s     r'   convert_directionzGrpcToRest.convert_direction  sM    DHH>>%%%DII>>&&&4UG<==r\   c                    |j                  d      r|j                  S |j                  d      r|j                  S |j                  d      r| j                  |j                        }|S |j                  d      r|j
                  S y )Nr  rD   	timestampr   )r   r  rD   r   r  r   )r   re   dts      r'   convert_start_fromzGrpcToRest.convert_start_from  sn    >>)$== >>'";;>>+&&&u7BI>>*%>>! &r\   c                     t        j                  |j                  |j                  d      r| j	                  |j
                        nd |j                  d      r | j                  |j                              S d       S )N	direction
start_fromrV   r  r  )r   OrderByrV   r   r  r  r  r  r   s     r'   r  zGrpcToRest.convert_order_by  sm    ||		:?..:U%%eoo6[_ =BNN<<X&&u'7'78
 	
 _c
 	
r\   c                 `    |j                  d      }|t        d|       t        ||      }|S )Nrz  invalid FacetValue model: r|  r   s       r'   convert_facet_valuezGrpcToRest.convert_facet_value   s;    	*<9%ABBeT"
r\   c                 v    t        j                  | j                  |j                        |j                        S N)rJ   r  )r   FacetValueHitr  rJ   r  r   s     r'   convert_facet_value_hitz"GrpcToRest.convert_facet_value_hit	  s.    !!))%++6++
 	
r\   c                     t        j                  |j                  |j                  |j	                  d      r|j
                        S d       S )Ncommittitler  r  )r   VersionInfor  r  r   r  r   s     r'   convert_health_check_replyz%GrpcToRest.convert_health_check_reply  sF    ++MM#(>>(#;5<<
 	
 BF
 	
r\   c                     t        j                  | j                  |j                        | j                  |j                        |j
                        S N)abr  )r   SearchMatrixPairrH  r  r  r  r   s     r'   convert_search_matrix_pairz%GrpcToRest.convert_search_matrix_pair  s@    $$""577+""577+++
 	
r\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w Nr\  )r   SearchMatrixPairsResponser\  r  r]  s      r'   convert_search_matrix_pairsz&GrpcToRest.convert_search_matrix_pairs   s7     --DIKKPD311$7P
 	
PrK  c                     t        j                  t        |j                        t        |j                        t        |j
                        |j                  D cg c]  }| j                  |       c}      S c c}w N)offsets_rowoffsets_colscoresr  )r   SearchMatrixOffsetsResponserF   r  r  r  r  rH  r   re   p_ids      r'   convert_search_matrix_offsetsz(GrpcToRest.convert_search_matrix_offsets(  sb     //U../U../%8=		B%%d+B	
 	
 C   A:r5   ($  __name__
__module____qualname__classmethodr   	Conditionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   OptimizerStatusOptimizersStatusr   r   r   r   r   r   r   r  r   r   r   r  r  r  r   r   rE   PayloadSchemaInfor  r   r	  PayloadIndexParamsPayloadSchemaParamsr  rh   r  r.  r   r:  r<  r?  r;  rG  r   PointIdExtendedPointIdrH  rS  rT  rZ  r[  r`  r   rd  r   rh  r   rp  rr  rv  rw  
OrderValuer}  r  r  Payloadr  r  r  r  r  r  r  r  r   Matchr  r  r  r   r  r  r  r  r   AliasOperationsr  r  r  PointsSelectorr
   ShardKeySelectorr  WithPayloadSelectorWithPayloadInterfacer  r  RetrievedPointr  r  r  r  r  r
  r  r  r  r  r  r"  r  r'  r#  VectorsConfigr  Vectorr   r   rD   r6  r;  NamedVectorsr=  VectorsVectorStructr  DenseVectorrB  rD  MultiDenseVectorrG  VectorInputrN  rT  rV  ContextInputPairrY  rZ  ContextInputr_  rd  re  ri  rl  rp  rs  Queryr  PrefetchQueryr  r  VectorsSelectorr  WithVectorsSelector
WithVectorr  SearchPointsr  r  QueryPointsr  r  RecommendPointsr  r  DiscoverPointsr  r  VectorExampleRecommendExampler  TargetVectorr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r!  r  r"  r  r  r  r  r  r  ReadConsistencyr  r  r  r4  r  r  r5  r  r  r6  r  r  r"  r  QuantizationConfigr   r<  rq  r>  r?  rC  rG  rL  rD  GroupIdrM  rS  rT  QuantizationConfigDiffr  r\  r]  VectorsConfigDiffr  PointsUpdateOperationUpdateOperationr  r  r  r  rU  SparseIndexConfigr  r  r  r  r  r  SparseVectorConfigr  ShardKeyr  r  r  r  r  r  	StartFromr  r  r  
FacetValuer  FacetHitr  r  HealthCheckReplyr  r  r  r  SearchMatrixPairsr  r  SearchMatrixOffsetsr  r  r  r\   r'   r   r      s   >dnn > > >* 
4;; 
4;; 
 
$ 
$** 
 
 
 5i 5H 5 5 
4+=+= 
$BTBT 
 
 _t~~ _$.. _ _ ;..;		#	#; ;
 

D,?,? 

DDWDW 

 

 BT-A-A BdF[F[ B B 
d.C.C 
H]H] 
 
 
T-@-@ 
TEXEX 
 
 
(;(; 
 
 
 
T-F-F 
4K`K` 
 
@ 
AT]] 
At}} 
A 
A 
t'9'9 
dnn 
 
 [d4445[	c4(((	)[ [
 	
0F0F 	
4K`K` 	
 	
 G++G		!	!G G< J0F0F J4KaKa J J( 
Ed.C.C 
EH]H] 
E 
E 
$*;*; 
@Q@Q 
 
 E$*;*; E@Q@Q E E _T-@-@ _TEXEX _ _ <T\\ <d6J6J < < =)9)9 =d>N>N = = 
)9)9 
d>N>N 
 

 Pt/D/D PI^I^ P P Nd.B.B NtG[G[ N N 
T-A-A 
dFZFZ 
 
 

$*;*; 

@Q@Q 

 

 d)9)9 dd>N>N d d ? ?DOO ? ? 
)9)9 
d>N>N 
 
$ G$9 Gdll G G 
)9)9 
d>N>N 
 
 
T-@-@ 
TEXEX 
 
 
)9)9 
d>N>N 
 
  
D,?,?  
DDWDW  
  
D :$** : : :0 
D,>,> 
4CUCU 
 
 
d.C.C 
H]H] 
 
8  
-- 
		"	" 
  
D 
d.C.C 
H]H] 
 
: 
dmm 
 
 
 DT-A-A DdFZFZ D D 
d.C.C 
H]H] 
 
 _cC''C=EdF[F[=\C			C C( H,,H		"	"H H" 8,,8		"	"8 8
 
D,?,? 
DKK 
 
 24#6#6 24;; 2 2 3)9)9 3d>N>N 3 3 
,,
		!	!
 
 AT]] At}} A A 
$*;*; 
@Q@Q 
 
. 
t/E/E 
$J`J` 
 

 J..J		#	#J J B4+=+= B$BTBT B B 
KK
	tE{De-t/@/@@	A
 
 $*;*; S$++EU@V   
<DLL 
<T5F5F 
< 
< )9)9 d5k   S$*;*; S@Q@Q S S Nt/D/D NdSXkIZ N N @)9)9 @d>N>N @ @  
D,?,? 
DDWDW 
 
 
t/D/D 
IYIY 
 
 N$*;*; N@Q@Q N N 
4+=+= 
$BTBT 
 
 ;4;; ;4;; ; ; ;4;; ;4;; ; ; :$** : : :: 
4+=+= 
$-- 
 
  T-A-A d3i   
H$2J2J 
Ht 
H 
H 
$*;*; 
@R@R 
 
2  
)9)9  
d>O>O  
  
D )
T-A-A )
dF[F[ )
 )
V 
D,?,? 
DDXDX 
 
B B4+=+= B$BWBW B B A$*;*; A@U@U A A 
++
		 	 
 
 	B4+=+= 	B$BTBT 	B 	B 
d.B.B 
tG[G[ 
 
 	
++	
		 	 	
 	
 
++
		 	 
 
 
t/D/D 
I^I^ 
 
 
T-@-@ 
TEXEX 
 
 
$*>*> 
4CWCW 
 

 
,,
		!	!
 
 
d.B.B 
tG[G[ 
 
 
--
		"	"
 
$ 
D,?,? 
DDWDW 
 
 B4+=+= B$BTBT B B 	DT-A-A 	DdFZFZ 	D 	D 	H,,	H		!	!	H 	H 
++
		&	&
 
 
,,
		'	'
 
 
++
		&	&
 
 Ed.C.C EH]H] E E G++G		 	 G G 
11
		&	&
 
 
$*;*; 
@Q@Q 
 
 
$*;*; 
@Q@Q 
 

 
 
DOO 
 
 T\\ dll   
 
DOO 
 
 K//K		$	$K K" 
t/D/D 
I^I^ 
 
 F0F0F F4KaKa F F UH..UH			UH UHn =c =dmm = =
 Ft/E/E F$J`J` F F 
0F0F 
4KaKa 
 
 =T]] =t}} = = 
++
		 	 
 
 d++d	c4***	+d d
 dmm    Tt/D/D TI^I^ T T
 CD,?,? CDDWDW C C >dnn > > > 	"t~~ 	"$.. 	" 	" 	
T\\ 	
dll 	
 	
  DOO   
DMM 
d>P>P 
 
 
t/D/D 
IYIY 
 
 
t/D/D 
I^I^ 
 
 
**
		'	'
 
 
,,
		)	)
 
r\   r   c            	       .&   e Zd Zedej
                  dej
                  fd       Zedej                  dej                  fd       Z	ede
eef   defd       Zedej                  dej                  fd       Zedej"                  dej"                  fd       Zedej&                  dej&                  fd       Zedej*                  dej*                  fd	       Zedej.                  dej.                  fd
       Zedej2                  dej4                  fd       Zedeeej<                  f   deeej>                  f   fd       Z edej<                  dej>                  fd       Z!edejD                  dejF                  fd       Z$edejJ                  dejJ                  fd       Z&edejN                  dejN                  fd       Z(edejR                  dejR                  fd       Z*edejV                  dejV                  fd       Z,edejZ                  dejZ                  fd       Z.edej^                  dej^                  fd       Z0edejb                  dejb                  fd       Z2edejf                  dejf                  fd       Z4edejj                  dejj                  fd       Z6edejn                  dejn                  fd       Z8edejr                  dejr                  fd       Z:edejv                  dejv                  fd       Z<edejz                  dejz                  fd       Z>edej~                  dej~                  fd       Z@edej                  dej                  fd       ZBedej                  dej                  fd       ZDedej                  deeej                  f   fd       ZGedej                  dej                  fd        ZIedej                  dej                  fd!       ZKedej                  dej                  fd"       ZMedej                  dej                  fd#       ZOedej                  dej                  fd$       ZQedej                  dej                  fd%       ZSedej                  dej                  fd&       ZUedej                  dej                  fd'       ZWedej                  dej                  fd(       ZZedej                  dej                  fd)       Z[edej                  d*edej                  fd+       Z]edej                  dej                  fd,       Z_edej                  dej                  fd-       Zaedej                  dej                  fd.       Zcedej                  dej                  fd/       Zeed0efej                     dehej                     fd1       Zjed0efej                     dehej                     fd2       Zledej                  dej                  fd3       Znedej                  dej                  fd4       Zoedej                  dej                  fd5       Zqedej                  dej                  fd6       Zsedej                  dej                  fd7       Zuedej                  dej                  fd8       Zwedej                  dej                  fd9       Zyedej                  dej                  fd:       Z{edej                  dej                  fd;       Z~edej                  dej                  fd<       Zedej                   dej                  fd=       Zedej                  dej                  fd>       Zedej                  dej                  fd?       Zedej                  dej                  fd@       Zedej                  dej                  fdA       Zedej                  dej                  fdB       Zedej                  dej                  fdC       Zedej                  dej                   fdD       Zedej                  dej                   fdE       Zedej&                  dej&                  fdF       Zedej*                  dej*                  fdG       Zedej.                  dej.                  fdH       Zedej2                  dej2                  fdI       Zedej6                  dej6                  fdJ       Zedej:                  dej:                  fdK       Zedej>                  dej>                  fdL       ZedejB                  dejD                  fdM       ZedejH                  dejJ                  fdN       ZedejN                  dOedehejD                     fdP       ZedejT                  deehe   eej\                     ee   f   fdQ       Zedehe   dej`                  fdR       Zedej                  dej                  fdS       Zedehehe      dejf                  fdT       Zedejj                  dejj                  fdU       Zedejn                  dejn                  fdV       Zedejr                  dejt                  fdW       Zedejx                  dejx                  fdX       Zedej|                  dej|                  fdY       Zedej                  dej                  fdZ       Zedej                  dej                  fd[       Zedej                  dej                  fd\       Zedej                  dej                  fd]       Zedej                  dej                  fd^       Zedej                  d*edej                  fd_       Zedej                  d*edej                  fd`       Zedej                  d*edej                  fda       Zedej                  d*edej                  fdb       Zedej                  d*edej                  fdc       Zedej                  d*edej                  fdd       Zedej                  d*edej                  fde       Zedej                  d*edej                  fdf       Zedej                  dej                  fdg       Zedej                  dej                  fdh       Zedej                  dej                  fdi       Zedej                  dej                  fdj       Zedej                  dej                  fdk       Zedej                  dej                  fdl       Zedmej                  dej                  fdn       Zedej                  dej                  fdo       Zedej                  dej                  fdp       Zedej                  dej                  fdq       Zedej                  dej                  fdr       Zedej                  dej                  fds       Zedej                  dej                  fdt       Zedej                  dej                  fdu       Zedej                  dej                  fdv       Zedej                  dej                  fdw       Zedej                  dej                  fdx       Zedej                   dej                   fdy       Zedej                  dej                  fdz       Zedej                  dej                  fd{       Zedej                  dej                  fd|       Zedej                  dej                  fd}       Z	edej                  dej                  fd~       Zedej                  dej                  fd       Zedej                  dej                  fd       Zedej                   dej                   fd       Zedej$                  dej$                  fd       Zedej(                  dej(                  fd       Zedej,                  dehej                     fd       Zedej0                  dej2                  fd       Zedej0                  dej2                  fd       Zedej8                  defd       Zedej<                  dej<                  fd       Zedej@                  dejB                  fd       Z"edejF                  dejF                  fd       Z$edejJ                  dejJ                  fd       Z&ede'eejJ                  f   dejP                  fd       Z)edejT                  dejT                  fd       Z+edejX                  dejX                  fd       Z-edej\                  dej\                  fd       Z/edej`                  dejb                  fd       Z2edejf                  dejf                  fd       Z4edejj                  dejl                  fd       Z7edejp                  dejr                  fd       Z:y)
RestToGrpcre   r   c           
      ,    dt         t        t        j                     t        j                  f   dt        t        j                     f fd}t	        j
                  |j                   ||j                        nd |j                   ||j                        nd |j                   ||j                        nd |j                  Jt	        j                   ||j                  j                        |j                  j                              S d       S )Nr   r   c                 r    t        | t              s| g} | D cg c]  }j                  |       c}S c c}w r5   )rA   r   r   )r   r   r   s     r'   convert_conditionsz5RestToGrpc.convert_filter.<locals>.convert_conditions>  s5     j$/(\
FPQC)))4QQQs   4r   )r   r   r   r   )r   r   r   r  r   r   r   r   r   r   r   r   r   )r   re   r%  s   `  r'   r   zRestToGrpc.convert_filter<  s    	Rd4>>2DNNBC	R$..!	R {{49JJ4J$UZZ0PT<ANN<V(8\`8=8P&u||4VZ ##/	 1%2B2B2M2MN#..88
 	
 
 	
r\   c                     t        j                  |j                  |j                  |j                  |j
                        S N)r   r   r   r   )r   r   r   r   r   r   r   s     r'   r   zRestToGrpc.convert_rangeS  s/    zzxxxx					
 	
r\   c                     t        |t              rBt        |t              s2t        j                  |t        j                  j                               }t               }|j                  |       |S r5   )rA   r   r   combinemintimer   FromDatetimer   re   tss      r'   convert_datetimezRestToGrpc.convert_datetime\  sL    eT":eX+F$$UHLL,=,=,?@E[
	r\   c                 v   t        j                  |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j
                  | j                  |j
                        nd |j                   | j                  |j                              S d       S r'  )r   r   r   r/  r   r   r   r   s     r'   r   z!RestToGrpc.convert_datetime_ranged  s    !!161Es##EHH-4161Es##EHH-438993H$$UYY/d38993H$$UYY/	
 	
 OS	
 	
r\   c                 v    t        j                  | j                  |j                        |j                        S r   )r   r   r   r   r   r   s     r'   r   zRestToGrpc.convert_geo_radiusm  r   r\   c                 B    t        j                  |j                        S r   )r   r   r#   r   s     r'   r   z)RestToGrpc.convert_collection_descriptionq  r   r\   c           	         t        j                  |j                  r| j                  |j                        nd | j	                  |j
                        |j                  | j                  |j                        nd |j                  | j                  |j                        |j                  |j                  nd |j                        S )N)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   s     r'   r   z"RestToGrpc.convert_collection_infow  s    ""BG,,300>TX 99%:P:PQ ''3 **5+?+?@ //00>161D1D1P%--VZ++
 	
r\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r-  )r   r.  r4  r   r3  r2  r1  r0  r/  r6  r5  r    r   s     r'   r   z$RestToGrpc.convert_collection_status  s    D))---((,,,D))000((///D))///((...D))...((---;E7CDDr\   c                     t        |t        j                        rt        j                  d      S t        |t        j
                        r!t        j                  d|j                        S t        d|       )NT)r   F)r   r   z invalid OptimizersStatus model: )rA   r   r   r   r  r   r   r    r   s     r'   r   z#RestToGrpc.convert_optimizer_status  sd    eT778''  eT889''5DD;E7CDDr\   c                 H     t         fd|j                         D              S )Nc              3   J   K   | ]  \  }}|j                  |      f  y wr5   )convert_payload_index_infor  s      r'   r;   z4RestToGrpc.convert_payload_schema.<locals>.<genexpr>  s%     ]83S#88=>]r1  r_   r   s   ` r'   r   z!RestToGrpc.convert_payload_schema  s     ]u{{}]]]r\   c                     |j                   }t        j                  | j                  |j                        || j                  |      nd |j                        S )Nr  )r   r   r  r  r  r  r  )r   re   r   s      r'   r8  z%RestToGrpc.convert_payload_index_info  sM    %%55eooF@F@R344V<X\<<
 	
r\   c                    t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                         r%t        j                  | j#                  |            S t        |t        j$                        r%t        j                  | j'                  |            S t)        d	|       )
N)r  )r  )r  )r  )r  )r  )r  )r  z#invalid PayloadSchemaParams model: )rA   r   r  r   r  r  r  r  r  r  r  r  r  r  r  r   r  r!  r  r"  r    r   s     r'   r  z(RestToGrpc.convert_payload_schema_params  s    eT112**S=Z=Z[`=abbeT445**%(%E%Ee%L  eT445**%(%E%Ee%L  eT223**#&#A#A%#H  eT001**C<X<XY^<_``eT112**S=Z=Z[`=abbeT556**&)&G&G&N  eT112**S=Z=Z[`=abb>ugFGGr\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                   S |t         j                  j"                  k(  rt        j                  j$                  S t'        d|       rg   )r   rh   r'  r   ri   r&  rl   r$  rn   r(  rp   r%  rr   r)  rt   r*  rv   r+  rx   r    r   s     r'   r  z&RestToGrpc.convert_payload_schema_type  sE   D**222))111D**222))111D**000))///D**///))...D**...))---D**///))...D**333))222D**///))...<UGDEEr\   c                 v    t        j                  |j                  | j                  |j                              S r8  )r   r:  r9  convert_update_statsr   r   s     r'   r<  z RestToGrpc.convert_update_result  s0      ++++ELL9
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S t        d|       r>  )r   r?  rC  r   rB  rA  r@  r    r   s     r'   r=  zRestToGrpc.convert_update_stats  sa    D%%///$$...D%%222$$1117w?@@r\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w rE  )r   rG  r   convert_extended_point_idrI  s      r'   r   z#RestToGrpc.convert_has_id_condition  s5    ""BG,,O3C11#6O
 	
OrK  c                 B    t        j                  |j                        S rQ  )r   rS  rR  r   s     r'   rT  zRestToGrpc.convert_delete_alias  rU  r\   c                 X    t        j                  |j                  |j                        S rW  )r   rZ  rX  rY  r   s     r'   r[  zRestToGrpc.convert_rename_alias  r\  r\   c                 V    t        j                  |j                  j                        S Nr^  )r   r`  r   rV   r   s     r'   r   z%RestToGrpc.convert_is_empty_condition  s    $$););<<r\   c                 V    t        j                  |j                  j                        S rD  )r   rd  r   rV   r   s     r'   r   z$RestToGrpc.convert_is_null_condition  s    ##(9(9::r\   c                     t        j                  |j                  j                  | j	                  |j                  j
                              S )Nrf  )r   rh  r   rV   r   r   r   s     r'   r   z#RestToGrpc.convert_nested_condition  s:    ##  %%ell&9&9:
 	
r\   c                     t        j                  |j                  |j                  |j                  | j                  |j                        nd |j                        S )Nro  )r   rp  rk  rl  rm  rq  rn  r   s     r'   rr  z RestToGrpc.convert_search_params  sS      MM++ %%1 66u7I7IJ++	
 		
r\   c                 X    t        j                  |j                  |j                        S rt  )r   rv  ru  rR  r   s     r'   rw  zRestToGrpc.convert_create_alias$  rx  r\   c                     t        |t              rt        j                  |      S t        |t              rt        j                  |      S t        d|       )N)rC   rD   r{  )rA   rC   r   r  rD   r    r   s     r'   r}  zRestToGrpc.convert_order_value(  sG    eS!??u--eU#??//5eW=>>r\   c                    t        j                  | j                  |j                        |j                  | j                  |j                        nd |j                  |j                  | j                  |j                        nd |j                  |j                  r| j                  |j                        nd |j                  r | j                  |j                              S d       S )N)r  r)   r  r  r  r  r  )r   r  r@  r  r)   r  r  r  convert_vector_structr  r  r  r  r}  r   s     r'   r  zRestToGrpc.convert_scored_point0  s    ,,UXX6:?--:SC''6Y]++?D||?WC--ell;]aMM@Ec++EOO<UYFKFWFW//0A0AB
 	
 ^b
 	
r\   c                     t        j                  |j                  |j                  |j                  |j
                        S r'  )r   r  r   r   r   r   r   s     r'   r  zRestToGrpc.convert_values_count<  s1    xxxx					
 	
r\   c                     t        j                  | j                  |j                        | j                  |j                              S )N)r  r  )r   r  r   r  r  r   s     r'   r  z#RestToGrpc.convert_geo_bounding_boxE  s;    ""**5>>:..u/A/AB
 	
r\   c                     t        j                  | j                  |j                        | j	                  |j
                        |j                   | j                  |j                              S d       S )Nr  r  r)   )r   r  r@  r  rL  r  r)   r  r   s     r'   r  zRestToGrpc.convert_point_structL  se    ,,UXX6--ell;:?--:SC''6
 	
 Z^
 	
r\   c                 B    t        d |j                         D              S )Nc              3   <   K   | ]  \  }}|t        |      f  y wr5   r6   rU   s      r'   r;   z-RestToGrpc.convert_payload.<locals>.<genexpr>V  s     L(#sS-,-Lr<   r_   r   s     r'   r  zRestToGrpc.convert_payloadT  s    LekkmLLLr\   c                     t        j                  |j                  |j                  |j                  |j
                  |j                  |j                        S N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s     r'   r   z#RestToGrpc.convert_hnsw_config_diffX  E    ""++ % 9 9gg!&!;!;MMoo
 	
r\   c                    |j                   r:t        j                  |j                  | j	                  |j                               S |j
                  rt        |j
                  t        j                        r:t        j                  |j                  | j                  |j
                              S t        |j
                  t        j                        r:t        j                  |j                  | j                  |j
                              S |j                  r:t        j                  |j                  | j                  |j                              S |j                  r:t        j                  |j                  | j                  |j                              S |j                   r:t        j                  |j                  | j#                  |j                               S t%        d|       )N)rV   r  )rV   r  )rV   r  )rV   r  )rV   r  )rV   r  zinvalid FieldCondition model: )r  r   r  rV   r  r  rA   r   r   r   r   r   r  r  r  r   r  r  r    r   s     r'   r   z"RestToGrpc.convert_field_conditionc  sn   ;;&&599C<M<Mekk<Z[[;;%++tzz2**uyy@Q@QRWR]R]@^__%++t'9'9:**		#2L2LU[[2Y  !!&&II!$!=!=e>T>T!U  &&II#*@*@AQAQ*R  &&IIC,D,DUEWEW,X  9%ABBr\   c                 X    t        j                  |j                  |j                        S Nr  r   r  r  r  r   s     r'   r  z"RestToGrpc.convert_wal_config_diff}  '    !!!11$77
 	
r\   c           	      V   t        j                  | j                  |j                        | j	                  |j
                        | j                  |j                        | j                  |j                        |j                   | j                  |j                              S d       S )N)r   r   r   r   r   )r   r   r   r   r   r   convert_optimizers_configr   r   r   r   r   r   s     r'   r   z$RestToGrpc.convert_collection_config  s    $$00>//0A0AB ::5;Q;QR--e.>.>? ,,8 //0I0IJ

 
	
 

 
	
r\   c                     t        j                  |j                  |j                  |j                  |j
                  |j                  |j                        S rT  rU  r   s     r'   r   zRestToGrpc.convert_hnsw_config  rV  r\   c                 X    t        j                  |j                  |j                        S rY  rZ  r   s     r'   r   zRestToGrpc.convert_wal_config  r[  r\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r   )r   r   r   r   r   r   r   r   r   r   r   r    r   s     r'   r  zRestToGrpc.convert_distance  s    DMM%%%==$$$DMM(((=='''DMM(((=='''DMM+++==***3E7;<<r\   c                    t        j                  |j                  | j                  |j                        nd |j                  |j
                  xs d|j                  |j                  |j                  |j                  | j                  |j                        nd |j                   | j                  |j                              S d       S )NF)r  r  r  r  r  r  r  r  )r   r  r  r  r  r  r  r  r  r  r  r  r  r   s     r'   r   z$RestToGrpc.convert_collection_params  s    $$=B]]=V**5==9\`++!11:U%*%C%C$77 % 9 9 ''3 001E1EF ((4 ++E,A,AB
 	
" #
 	
r\   c           
          t        j                  |j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                        S Nr   
r   r  r   r   r   r   r   r   r   r   r   s     r'   r]  z$RestToGrpc.convert_optimizers_config  s]    ((#(#?#?#55$77$77%*%C%C"33"33%*%C%C	
 		
r\   c           
          t        j                  |j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                        S rc  rd  r   s     r'   r  z)RestToGrpc.convert_optimizers_config_diff  s_     ((#(#?#?#55$77$77%*%C%C"33"33%*%C%C	
 		
r\   ru  c           
         t        j                  ||j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                   | j                  |j                              S d       S )N)ru  r  r  r   r   r   )r   r  r  r  r  r  r   r  r   r   r   r  r   re   ru  s      r'   r  z$RestToGrpc.convert_update_collection  s     $$+ **6 2253J3JK ==, //> <<+ 225<<@ $$0 ,,U->->? ,,8 44U5N5NO/
 	
2 3
 	
r\   c                 X    t        j                  |j                  |j                        S )N)r  r  )r   r  r  r  r   s     r'   r   zRestToGrpc.convert_geo_point	  s    }}		::r\   c                 R   t        |t        j                        rt        |j                  t              r t        j                  |j                        S t        |j                  t              r t        j                  |j                        S t        |j                  t              r t        j                  |j                        S t        |t        j                        r t        j                  |j                        S t        |t        j                        rt        |j                        dk(  r*t        j                  t        j                  g             S t        |j                  d   t              r4t        j                  t        j                  |j                              S t        |j                  d   t              r4t        j                  t        j                  |j                              S t!        d	|       t        |t        j"                        rt        |j$                        dk(  r*t        j                  t        j                  g       
      S t        |j$                  d   t              r4t        j                  t        j                  |j$                        
      S t        |j$                  d   t              r4t        j                  t        j                  |j$                              S t!        d|       t!        d|       )N)r  r  r  r  r   )r  )r  )r  zinvalid MatchAny model: )r  )r  zinvalid MatchExcept model: r  )rA   r   r  rJ   rB   r   r  rC   rE   r  r  r  r8  r  RepeatedStringsRepeatedIntegersr    r  except_r   s     r'   r  zRestToGrpc.convert_match		  s   eT__-%++t,zz%++66%++s+zz%++66%++s+zz%++66eT^^,::5::..eT]]+599~"zz4+?+?+KLL%))A,,zz4+?+?		+RSS%))A,,zz4+@+@%))+TUU7w?@@eT--.5==!Q&zz$2F2Fr2RSS%--*C0zz$2F2Fu}}2]^^%--*C0zz$2G2GQVQ^Q^2_``:5'BCC0899r\   c                    t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        d|       )Nr  r  r  r  )rA   r   r  r   r  rw  r  r  rT  r  r  r[  r  r    r   s     r'   r  z#RestToGrpc.convert_alias_operations'	  s    eT667''S5M5MeN`N`5abbeT667''S5M5MeN`N`5abbeT667''S5M5MeN`N`5abb:5'BCCr\   c                 X    t        j                  |j                  |j                        S r  )r   r  rR  ru  r   s     r'   r  z$RestToGrpc.convert_alias_description2	  r  r\   examplesc                     g }|D ]f  }t        |t        t        j                              r| j	                  |      }nt        |t
        j                        r|}nV|j                  |       h |S r5   )rA   r   r   r  r@  r   r  append)r   rq  r  exampleid_s        r'   !convert_recommend_examples_to_idsz,RestToGrpc.convert_recommend_examples_to_ids9	  sf     #% 	G'#6t7K7K#LM33G<GT\\2JJsO	 
r\   c                    g }|D ]  }t        |t        j                        r|}nTt        |t              rt        j                  |      }n-t        |t        j
                        r| j                  |      }nt|j                  |        |S NrA  )rA   r   r  rF   r   r6  convert_sparse_vector_to_vectorrs  )r   rq  r  rt  r  s        r'   %convert_recommend_examples_to_vectorsz0RestToGrpc.convert_recommend_examples_to_vectorsJ	  sy     &( 
	#G'4;;/ GT*'2GT%6%67<<WENN6"
	# r\   c                 $    | j                  |      S r5   )convert_recommend_exampler   s     r'   r  z!RestToGrpc.convert_vector_example]	  s    ,,U33r\   c                    t        |t        t        j                              r%t	        j
                  | j                  |            S t        |t        j                        r%t	        j
                  | j                  |            S t        |t              r*t	        j
                  t	        j                  |            S t        d|       )Nr  r  rA  z Invalid RecommendExample model: )rA   r   r   r  r   r  r@  r6  ry  rF   r  r    r   s     r'   r|  z$RestToGrpc.convert_recommend_examplea	  s    e01E1EFG%%)F)Fu)MNNeT../%%S-P-PQV-WXXeT"%%T[[e-DEE;E7CDDr\   c                     t        j                  |j                  t        j                  |j                              S )NrA  )r7  r4  )r   r  r2   SparseIndicesr4  r   s     r'   ry  z*RestToGrpc.convert_sparse_vector_to_vectorl	  s,    {{&&EMM:
 	
r\   c                 L    t        j                  | j                  |            S )N)r  )r   r  r|  r   s     r'   r  z RestToGrpc.convert_target_vectors	  s      (E(Ee(LMMr\   c                     t        j                  | j                  |j                        | j                  |j                              S rX  )r   r  r|  rR  rS  r   s     r'   r  z'RestToGrpc.convert_context_example_pairw	  s;    
 &&225>>B225>>B
 	
r\   c                     t        |t              rt        j                  |      S t        |t              rt        j                  |      S t        d|       )N)rN  )rO  zinvalid ExtendedPointId model: )rA   rC   r   r  rE   r    r   s     r'   r@  z$RestToGrpc.convert_extended_point_id	  sG    eS!<<E**eS!<<U++:5'BCCr\   c           
         t        |t        j                        rQt        j                  t        j
                  |j                  D cg c]  }| j                  |       c}            S t        |t        j                        r/t        j                  | j                  |j                              S t        d|       c c}w )N)r  r  r   r  )rA   r   r  r   r  PointsIdsListr  r@  r  r   r   r    r   re   r  s      r'   r  z"RestToGrpc.convert_points_selector	  s    eT../&&))KP<<X%66u=X 
 eT001&&c.@.@.NOO9%ABB Ys   Cc                    t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t!        d|       )N)r   r_  rc  rF  r  rg  r   )rA   r   r  r   r  r   r`  r   rd  r   rG  r   r   r   rh  r   r    r   s     r'   r   zRestToGrpc.convert_condition	  s   eT001>>(C(CE(JKKeT223>>3+I+I%+PQQeT112>>#*G*G*NOOeT001>>)E)Ee)LMMeT[[)>>););E)BCCeT112>>)E)Ee)LMM4UG<==r\   c                 V   t        |t        j                        r4t        j                  t        j
                  |j                              S t        |t        j                        r4t        j                  t        j                  |j                              S t        d|       )Nr=   r  r  zinvalid PayloadSelector model: )rA   r   PayloadSelectorIncluder   r  PayloadIncludeSelectorr  r  PayloadExcludeSelectorr  r    r   s     r'   convert_payload_selectorz#RestToGrpc.convert_payload_selector	  s    eT889++335==I  eT889++335==I  :5'BCCr\   c                 $    | j                  |      S r5   )r  r   s     r'   r  z(RestToGrpc.convert_with_payload_selector	  s     11%88r\   c                 F   t        |t              rt        j                  |      S t        |t              r*t        j                  t        j
                  |            S t        |t        t        j                              r| j                  |      S t        d|       )Nr  r=   r  z$invalid WithPayloadInterface model: )rA   rB   r   r  rF   r  r   r   PayloadSelectorr  r    r   s     r'   r  z)RestToGrpc.convert_with_payload_interface	  s     eT"++599t$++D4O4OW\4]^^x(<(<=>//66?wGHHr\   c                 p   t        |t              rt        j                  |      S t        |t              rt        j                  |      S t        |t
              r'| j                  |      }t        j                  |      S t        |t              rt        j                  |      S t        d|       )Nrj  rJ  )r  )r   zinvalid StartFrom model: )	rA   rC   r   r  rD   r   r/  rE   r    r-  s      r'   r  zRestToGrpc.convert_start_from	  s    eS!>>%00eU#>>..eX&%%e,B>>B//eS!>>5114UG<==r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S t        d|       r  )r   r  r  r   r  r  r  r    r   s     r'   r  zRestToGrpc.convert_direction	  sY    DNN&&&>>%%%DNN'''>>&&&4UG<==r\   c                     t        j                  |j                  |j                  | j	                  |j                        nd |j
                   | j                  |j
                              S d       S )Nr  )r   r  rV   r  r  r  r  r   s     r'   r  zRestToGrpc.convert_order_by	  sk    ||		:?//:U%%eoo6[_ =B<L<L<X&&u'7'78
 	
 _c
 	
r\   c                     t        |t              rt        j                  |      S t        |t        j                        r| j                  |      S t        d|       )Nr^  z invalid OrderByInterface model: )rA   rE   r   r  r   r  r    r   s     r'   convert_order_by_interfacez%RestToGrpc.convert_order_by_interface	  sO    
 eS!<<E**eT\\*''..;E7CDDr\   c                     t        |t              rt        j                  |      S t        |t              rt        j                  |      S t        d|       )Nr0   r-   r  )rA   rE   r   r  rC   r    r   s     r'   r  zRestToGrpc.convert_facet_value	  sG    eS!??66eS!??775eW=>>r\   c                 v    t        j                  | j                  |j                        |j                        S r  )r   r  r  rJ   r  r   s     r'   r  z"RestToGrpc.convert_facet_value_hit	  s,    }}))%++6++
 	
r\   c           	         t        j                  | j                  |j                        | j	                  |j
                        |j                  | j                  |j                        nd |j                  r| j                  |j                        nd |j                  r | j                  |j                              S d       S )N)r  r)   r  r  r  )r   r  r@  r  r  r)   r  rL  r  r  r  r}  r   s     r'   r  zRestToGrpc.convert_record
  s    "",,UXX6''6?D||?WC--ell;]a@Ec++EOO<UYFKFWFW//0A0AB
 	

 ^b
 	
r\   c                 $    | j                  |      S r5   )r  r   s     r'   r  z"RestToGrpc.convert_retrieved_point
  s    !!%((r\   c                 B    t        j                  |j                        S r  )r   r  r  r   s     r'   r  zRestToGrpc.convert_count_result
  r  r\   c                     t               }|j                  t        j                  |j                               t        j                  |j                  ||j                        S )Nr  )	r   r,  r   fromisoformatr  r   r
  r#   r	  )r   re   r  s      r'   r  z'RestToGrpc.convert_snapshot_description
  sN     K	x55e6I6IJK''#
 	
r\   c                 h   |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r  )
r   r  r  r   r  r  r  r  r  r    r   s     r'   r  zRestToGrpc.convert_datatype!
  s{    DMM)))==(((DMM'''==&&&DMM)))==(((3E7;<<r\   c                    t        j                  |j                  | j                  |j                        |j
                  | j                  |j
                        nd |j                  | j                  |j                        nd |j                  |j                  | j                  |j                        nd |j                   | j                  |j                              S d       S )Nr  )r   r  r	  r  r  r   r   r   r   r   r  r  r  r  r   s     r'   r  z RestToGrpc.convert_vector_params,
  s      ))%..9 $$0 ,,U->->? ,,8 //0I0IJMM=B^^=WS))%..9]a ++7 ..u/G/GH!
 	
$ %
 	
r\   c                 `    t        j                  | j                  |j                              S r   )r   r"  r#  r!  r   s     r'   r  z%RestToGrpc.convert_multivector_configD
  r$  r\   c                     |t         j                  j                  k(  rt        j                  j                  S t        d|       r&  )r   r'  r)  r   r(  r    r   s     r'   r#  z)RestToGrpc.convert_multivector_comparatorJ
  s=     D..666--444@HIIr\   c           	      R    t        |t        j                        r%t        j                   j                  |            S t        |t              rJt        j                  t        j                  t         fd|j                         D                          S t        d|       )Nr   c              3   J   K   | ]  \  }}|j                  |      f  y wr5   r.  r  s      r'   r;   z4RestToGrpc.convert_vectors_config.<locals>.<genexpr>Z
  s%     axsCc3#<#<S#ABar1  r2  r,  r+  )
rA   r   r  r   r  r  rH   VectorParamsMaprI   r    r   s   ` r'   r  z!RestToGrpc.convert_vectors_configS
  s    eT../%%S-F-Fu-MNNt$%%//aSXS^S^S`aa  <UGDEEr\   c                 d   dt         t        t           t        t        t              f   dt        j                  fd}t        |t              rt        j                   ||            S t        |t              ri }|j                         D ]l  \  }}t        |t              r|j                  | ||      i       0t        |t        j                        sK|j                  || j                  |      i       n t        j                  t        j                  |            S t        d|       )Nr  r   c                     t        |       dk7  rJt        | d   t              r7t        j                  | D cg c]  }|D ]  }|  c}}t        |             S t        j                  |       S c c}}w )Nr   )r7  r   rA  )r8  rA   rF   r   r  )r  multi_vectorinner_vectors      r'   r;  z8RestToGrpc.convert_vector_struct.<locals>.convert_vectorb
  s}    6{aJq	4% {{ -3(,8 ) %$
 #&f+  ;;F++s   A/
r  r  zinvalid VectorStruct model: )r   r   rD   r   r  rA   rF   r  rH   rI   updater   r6  ry  r  r    )r   re   r;  r  rV   rW   s         r'   rL  z RestToGrpc.convert_vector_struct`
  s    	,5ed4;6G)G#H 	,T[[ 	, eT"<<~e'<==t$G!KKM TSc4(NNC)<#=>T%6%67NNC)L)LS)Q#RS	T
 <<(9(9'(JKK;E7CDDr\   c                     t        |t              rt        j                  |      S t        |t              r*t        j                  t        j
                  |            S t        d|       )Nr  r  r  zinvalid WithVectors model: )rA   rB   r   r  rF   r  r    r   s     r'   convert_with_vectorszRestToGrpc.convert_with_vectors}
  sV    eT"++599t$++D4H4Hu4UVV:5'BCCr\   num_recordsc                    t        |t              r|D cg c]  }| j                  |       c}S t        |t              rjt	        |      D cg c]  }i  }}|j                         D ]   \  }}t        |      D ]  \  }}|||   |<    " |D cg c]  }| j                  |       c}S t        d|       c c}w c c}w c c}w )Nz!invalid BatchVectorStruct model: )rA   rF   rL  rH   r  rI   	enumerater    )	r   re   r  itemr  resultrV   rW   r:  s	            r'   convert_batch_vector_structz&RestToGrpc.convert_batch_vector_struct
  s     eT"@EFC--d3FFt$.3K.@!A"!AF!A!KKM *S(~ *GAt%)F1IcN** AGGC--d3GG@HII G!A Hs   B8	B=Cc                 x   t        |t              r|d d fS t        |t        j                        r|j                  d |j
                  fS t        |t        j                        rK|j                  j                  t        j                  |j                  j                        |j
                  fS t        d|       )NrA  z!invalid NamedVectorStruct model: )rA   rF   r   r  r  r#   NamedSparseVectorr2   r   r  r4  r    r   s     r'   convert_named_vector_structz&RestToGrpc.convert_named_vector_struct
  s     eT"$$$t//0<<uzz11t556<<&&(:(:@T@T(UW\WaWaaa@HIIr\   c                 .    t        j                  |      S rx  )r   r   r   s     r'   rB  zRestToGrpc.convert_dense_vector
  s    U++r\   c                 X    t        j                  |j                  |j                        S )N)r2   r4  )r   r6  r2   r4  r   s     r'   rD  z RestToGrpc.convert_sparse_vector
  s      emmLLr\   c                 r    t        j                  |D cg c]  }| j                  |       c}      S c c}w )Nr  )r   r  rB  rF  s      r'   rG  z%RestToGrpc.convert_multi_dense_vector
  s1    $$DIJ&S--f5J
 	
Js   4c                 "   t        |t              rkt        |      dk7  r8t        |d   t              r%t        j                  | j                  |            S t        j                  | j                  |            S t        |t        j                        r%t        j                  | j                  |            S t        |t        t        j                              r%t        j                  | j                  |            S t        d|       )Nr   )rM  )rK  )rL  r~  rJ  )rA   rF   r8  r   r  rG  rB  r   r6  rD  r   r  r@  r    r   s     r'   rN  zRestToGrpc.convert_vector_input
  s    eT"5zQ:a$$ ''C4R4RSX4YZZ###*B*B5*IJJeT../##3+D+DU+KLLe01E1EFG##s'D'DU'KLL6ug>??r\   c           	      r   t        j                  |j                  )|j                  D cg c]  }| j                  |       c}nd |j                  )|j                  D cg c]  }| j                  |       c}nd |j
                   | j                  |j
                              S d       S c c}w c c}w )NrQ  )r   rT  rR  rN  rS  rP  rU  rF  s      r'   rV  z"RestToGrpc.convert_recommend_input
  s    ""~~) FK^^T6c..v6T~~) FK^^T6c..v6T~~) 33ENNC

 
	
 

 
	
T Us   B/ B4
c                     t        j                  | j                  |j                        | j                  |j                              S rX  )r   r  rN  rR  rS  r   s     r'   rZ  z%RestToGrpc.convert_context_input_pair
  s9    $$--enn=--enn=
 	
r\   c                 .   t        |t              r3t        j                  |D cg c]  }| j	                  |       c}      S t        |t
        j                        r&t        j                  | j	                  |      g      S t        d|       c c}w )Nr  zinvalid ContextInput model: )rA   rF   r   r  rZ  r   rY  r    r]  s      r'   r_  z RestToGrpc.convert_context_input
  s    eT"$$HMNs55d;N  eT--.$$C,J,J5,Q+RSS7w?@@ Os   Bc                     t        j                  | j                  |j                        | j	                  |j
                              S ra  )r   rd  rN  rb  r_  rc  r   s     r'   re  z!RestToGrpc.convert_discover_input
  rf  r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       rh  )r   ri  rj  r   rk  r    r   s     r'   rl  zRestToGrpc.convert_fusion
  rm  r\   c                     |t         j                  j                  k(  rt        j                  j                  S t        d|       ro  )r   rp  rr  r   rq  r    r   s     r'   rs  zRestToGrpc.convert_sample
  rt  r\   c                    t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                         r/t        j                  | j#                  |j$                              S t        |t        j&                        r/t        j                  | j)                  |j*                              S t        |t        j,                        r/t        j                  | j/                  |j0                              S t3        d|       )	Nrx  rz  r|  r}  r  r  r  rv  )rA   r   r  r   r  rN  rw  r  rV  ry  r  re  r{  r  r_  rc  r  r  r~  r  rl  r  r  rs  r  r    r   s     r'   r  zRestToGrpc.convert_query
  sW   eT../::c&>&>u}}&MNNeT001::(C(CEOO(TUUeT//0::s'A'A%..'QRReT../::c&?&?&NOOeT../::s'E'Eenn'UVVeT--.::S%7%7%EFFeT--.::S%7%7%EFF0899r\   c                    t        |t        t        j                              r%t	        j
                  | j                  |            S t        |t        t        j
                              r| j                  |      S t        d|       )Nrx  zinvalid QueryInterface: )
rA   r   r   r  r   r  rN  r   r  r    r   s     r'   convert_query_interfacez"RestToGrpc.convert_query_interface  si    e01A1ABC::c&>&>u&EFFeXdjj12$$U++3E7;<<r\   c                    d }t        |j                  t        j                        r| j	                  |j                        g}nCt        |j                  t
              r)|j                  D cg c]  }| j	                  |       c}}t        j                  ||j                  | j                  |j                        nd |j                  |j                  nd |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                  |j                   |j                   nd |j"                   | j%                  |j"                              S d       S c c}w )Nr  )rA   r  r   r  r  r   r   r  r  r  r  r   r   r   rr  r  r  r  r  r  s      r'   r  z!RestToGrpc.convert_prefetch_query  s1   enndmm4225>>BCH-MR^^\228<\H!!>Ckk>U#--ekk:[_!&!8%++d7<||7O3%%ell3UY>Cll>V3,,U\\:\`!11!&!8%++d  , 33E4E4EF
 	
 
 	
 ]s   ,E?c                 N   | j                  |j                        \  }}}t        j                  ||||j                  | j                  |j                        nd |j                  |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                  |j                  ||j                  | j                  |j                        nd |j                  r | j!                  |j                              S d       S )N)ru  r  sparse_indicesr   r  r  r   r  r  r  r  r  )r  r  r   r
  r   r   r  r  r  r   rr  r  r  r  r  r  r  )r   re   ru  r  r  r#   s         r'   convert_search_requestz!RestToGrpc.convert_search_request/  s    (+'F'Fu||'T$  +)7<||7O3%%ell3UY++ %%1 2253E3EF>Cll>V3,,U\\:\`!11<< $$0 (():):; DI??..u?+
 	
* Y]+
 	
r\   c                 &    | j                  ||      S r5   )r  rg  s      r'   r  z RestToGrpc.convert_search_pointsN  s     ))%AAr\   c                    t        |j                  t        j                        r|j                  gn|j                  }t	        j
                  ||j                  |D cg c]  }| j                  |       c}nd |j                  | j                  |j                        nd |j                  |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                  |j                  |j                   |j"                  | j%                  |j"                        nd |j&                  | j)                  |j&                        nd |j*                  | j-                  |j*                        nd |j.                   | j1                  |j.                              S d       S c c}w )N)ru  r  r  r  r   r   r  r  r  r  r  r  r  )rA   r  r   r  r   r  r  r  r  r  r   r   r   rr  r  r  r  r  r  r  r  r  r  r  r  )r   re   ru  r  ps        r'   convert_query_requestz RestToGrpc.convert_query_requestT  s   
 !+5>>4== IU^^u~~ 	 +~~) >FFc003F>Ckk>U#--ekk:[_++7<||7O3%%ell3UY>Cll>V3,,U\\:\`!11++<<  , 11%2C2CD %%1 2253E3EF ??. ..u?   , 33E4E4EF3
 	
6 7
 	
Fs   G	
c                 &    | j                  ||      S r5   )r  rg  s      r'   r  zRestToGrpc.convert_query_pointsy  s     ((@@r\   c                    | j                  |j                        }| j                  |j                        }| j                  |j                        }| j                  |j                        }t	        j
                  di d|d|d|d|j                  | j                  |j                        nd d|j                  d|j                  | j                  |j                        nd d|j                  | j                  |j                        nd d|j                  d	|j                  d
|j                  | j!                  |j                        nd d|j"                  d|j$                  | j'                  |j$                        nd d|j(                  | j+                  |j(                        nd d|d|d|j,                  r| j/                  |j,                        S d S )Nru  rR  rS  r   r  r  r   r  r  r  r  r  rP  r  r  r  r  )rv  rR  rS  rz  r   r  r   r   r  r  r  r   rr  r  r  r  r  r  r  r  rP  rU  r  r  )r   re   ru  r  r  r  r  s          r'   convert_recommend_requestz$RestToGrpc.convert_recommend_request  s    <<U^^L<<U^^LDDU^^TDDU^^T## #
+#
!#
 "#
 8=||7O3%%ell3UY	#

 ++#
 %%1 2253E3EF#
 ?Dll>V3,,U\\:\`#
 "11#
 <<#
  $$0 (():):;##
& ++'#
, $$0 ++E,=,=>/#
6 >>- ..u~~>9#
< .=#
> .?#
B DI??..u?C#
 #	
B Y]C#
 #	
r\   c                 &    | j                  ||      S r5   )convert_discover_requestrg  s      r'   r  z"RestToGrpc.convert_discover_points  s     ++E?CCr\   c                 8   |j                   | j                  |j                         nd }|j                  )|j                  D cg c]  }| j                  |       c}nd }|j                  d n| j                  |j                        }|j                  d n| j                  |j                        }|j                  d n| j                  |j                        }|j                  d n| j                  |j                        }	|j                  d n| j                  |j                        }
|j                  d n| j                  |j                        }t!        j"                  |||||j$                  |j&                  |	|||j(                  |
|      S c c}w )Nrz   )ru  rb  rc  r   r  r  r  r  r   r  r  r  )rb  r  rc  r  r   r   r   rr  r  r  r  r  r  r  r  r  r   r  r  r  r  )r   re   ru  rb  r^  rc  query_filtersearch_paramsr  r  r  r  s               r'   r  z#RestToGrpc.convert_discover_request  s    =BLL<T**5<<8Z^ }}( AFNS--d3N 	  %||3t9K9KRWR^R^9K9_ % 4#:S:STYT`T`:a !!) 33E4F4FG 	 %%-D33K3KEL]L]3^ 	
 %%-D33N3NuO`O`3a 	
 OO+D1O1OPUP_P_1` 	 ""+++<<%% ++#1
 	
7 Os   Fc                 &    | j                  ||      S r5   )r  rg  s      r'   r  z#RestToGrpc.convert_recommend_points  s     ,,UODDr\   c                    |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r  )r   r  r  r   r  r  r  r  r  r  r  r    r   s     r'   r  z!RestToGrpc.convert_tokenizer_type  s    D&&+++%%***d((333%%000d((///%%,,,d((555%%222<UGDEEr\   c                     t        j                  |j                  | j                  |j                        nd |j                  |j
                  |j                        S )N)r  r  r  r  )r   r  r  r  r  r  r  r   s     r'   r  z$RestToGrpc.convert_text_index_params  sQ    ## ??. **5??;oo----	
 		
r\   c                     t        j                  |j                  |j                  |j                  |j
                        S )N)r  r  r  r   )r   r  r  r  r  r   r   s     r'   r  z'RestToGrpc.convert_integer_index_params  s5     &&<<++++MM	
 	
r\   c                 X    t        j                  |j                  |j                        S N)r  r   )r   r  r  r   r   s     r'   r  z'RestToGrpc.convert_keyword_index_params  s     &&%--XXr\   c                 X    t        j                  |j                  |j                        S N)r  r   )r   r  r  r   r   s     r'   r  z%RestToGrpc.convert_float_index_params  s    $$%2D2Demm\\r\   c                 B    t        j                  |j                        S )N)r   )r   r  r   r   s     r'   r  z#RestToGrpc.convert_geo_index_params  s    ""5==99r\   r  c                 *    t        j                         S r5   )r   r  r  s     r'   r   z$RestToGrpc.convert_bool_index_params  s    ##%%r\   c                 X    t        j                  |j                  |j                        S r  )r   r  r  r   r   s     r'   r!  z(RestToGrpc.convert_datetime_index_params"  s$     ''U5G5GQVQ^Q^__r\   c                 X    t        j                  |j                  |j                        S r  )r   r  r  r   r   s     r'   r"  z$RestToGrpc.convert_uuid_index_params(  s    ##eoou}}UUr\   c                     t        j                  |j                  |j                  |j                  |j
                        S )N)r  r  r  r  )r   r  r  r  r  r  r   s     r'   r  z)RestToGrpc.convert_collection_params_diff,  s;     (($77%*%C%C!11 % 9 9	
 	
r\   c                 X    t        j                  |j                  |j                        S )N)ru  r  )r   r  r  r  r   s     r'   r  z"RestToGrpc.convert_lookup_location7  s%    ""!,,
 	
r\   c                     t        |t              rt        j                  |      S t        |t        j
                        r%t        j                  | j                  |            S t        d|       )N)r  r  r   )rA   rC   r   r  r   r  r  r    r   s     r'   r  z#RestToGrpc.convert_read_consistency>  sj    eS!''  t778''66u=  >ugFGGr\   c                 h   |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r  )
r   r  r
  r   r	  r  r  r  r  r    r   s     r'   r  z(RestToGrpc.convert_read_consistency_typeK  s     D,,555++444d..222++///d..555++222B5'JKKr\   c                    |t         j                  j                  k(  r.t        j                  t        j                  j
                        S |t         j                  j                  k(  r.t        j                  t        j                  j                        S |t         j                  j                  k(  r.t        j                  t        j                  j                        S t        d|       )Nr  r  )r   r  r  r   r  r  r  r  r  r  r    r   s     r'   r  z!RestToGrpc.convert_write_orderingX  s    D&&+++%%4+A+A+F+FGGd((///%%4+A+A+H+HIId((///%%4+A+A+H+HII<UGDEEr\   c                     t        j                  t         j                  j                  |j                  |j
                        S )Nr  )r   r4  QuantizationTypeInt8r  r  r   s     r'   r  z-RestToGrpc.convert_scalar_quantization_configc  s6     &&&&++^^''
 	
r\   c                 v    t        j                  | j                  |j                        |j                        S )Nr  )r   r5  r  r  r  r   s     r'   r  z.RestToGrpc.convert_product_quantization_configm  s4     ''55e6G6GH''
 	
r\   c                 B    t        j                  |j                        S )Nr  )r   r6  r  r   s     r'   r  z-RestToGrpc.convert_binary_quantization_configv  s      &&''
 	
r\   c                 D   |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S |t         j                  j                  k(  rt        j                  j                  S t        d|       r   )r   r"  r#  r   r!  r%  r$  r'  r&  r)  r(  r+  r*  r    r   s     r'   r  z$RestToGrpc.convert_compression_ratio~  s    D)),,,((+++d++...((+++d++///((,,,d++///((,,,d++///((,,,?wGHHr\   c                    t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        d|       )Nr/  r1  r3  r-  )rA   r   r4  r   r  r  r.  r5  r  r0  r6  r  r2  r    r   s     r'   r   z&RestToGrpc.convert_quantization_config  s     eT445**==ellK  eT556**??N  eT445**==ellK  A%IJJr\   c                 n    t        j                  |j                  |j                  |j                        S )Nr;  )r   r<  r8  r9  r:  r   s     r'   rq  z-RestToGrpc.convert_quantization_search_params  s.     ,,<<MM++
 	
r\   c                     t        j                  | j                  |j                        | j	                  |j
                              S )N)r  r  )r   r>  r@  r  rL  r  r   s     r'   r?  z RestToGrpc.convert_point_vectors  s9      ,,UXX6--ell;
 	
r\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w rA  )r   rC  rB  rD  rE  s      r'   rG  z RestToGrpc.convert_groups_result  rH  rK  c           	         t        j                  | j                  |j                        |j                  D cg c]  }| j                  |       c}|j                   | j                  |j                              S d       S c c}w )NrJ  )r   rL  rM  r  rK  r  r  r  r  s      r'   rD  zRestToGrpc.convert_point_group  sq    ##EHH-?DzzJe#**51J7<||7O3%%ell3
 	
 VZ
 	
Js   B
c                     t        |t              rt        j                  |      S t        |t              r1|dk\  rt        j                  |      S t        j                  |      S t        d|       )Nr0   r   )unsigned_valuer-   rQ  )rA   rE   r   r  rC   r    r   s     r'   rM  zRestToGrpc.convert_group_id  sr    eS!<<"  s#z||#(  ||"'  6ug>??r\   c                     t        j                  |j                  |j                  | j	                  |j                        nd |j
                   | j                  |j
                              S d       S )N)r  r  r  )r   rS  r  r  r  r  r  r   s     r'   rT  zRestToGrpc.convert_with_lookup  sv    '' %%1 ((););< %%1 2253E3EF
 	
 
 	
r\   c                 ^   t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S t        |t        j                        r/t        j                  | j                  |j                              S |t        j                  j                  k(  r(t        j                  t        j                               S t        d|       )Nr/  r1  r3  )rW  rV  )rA   r   r4  r   r  r  r.  r5  r  r0  r6  r  r2  rX  rY  r    r   s     r'   r  z+RestToGrpc.convert_quantization_config_diff  s     eT445..==ellK  eT556..??N  eT445..==ellK  DMM***..  EeWMNNr\   c                     t        j                  |j                  | j                  |j                        nd |j                  | j                  |j                        nd |j                        S )Nr[  )r   r\  r   r   r   r  r   r   s     r'   r]  z%RestToGrpc.convert_vector_params_diff  sj    $$ $$0 ,,U->->? ,,8 44U5N5NOMM
 	
r\   c           	      h    t        |t              r:t        |      dk(  r,d|v r(t        j                   j                  |d               S t        |t              rJt        j                  t        j                  t         fd|j                         D                          S t        d|       )Nr  r`  r  c              3   J   K   | ]  \  }}|j                  |      f  y wr5   rb  r  s      r'   r;   z9RestToGrpc.convert_vectors_config_diff.<locals>.<genexpr>  s*      GOsCc<<SABr1  r  r  r_  )	rA   rH   r8  r   r  r]  VectorParamsDiffMaprI   r    r   s   ` r'   r  z&RestToGrpc.convert_vectors_config_diff  s    eT"s5zQ2;))1O1OPUVXPY1Z[[t$))33 SXS^S^S`   @HIIr\   c                    t        |t        j                        r| j                  |j                  j
                  t        |j                  j                              }t        t        |j                  j                              D cg c]  }t        j                  t        j                  |j                  j                  |         ||   |j                  j                  ,t        j                  |j                  j                  |         nd        c}S t        |t        j                        r)|j                   D cg c]  }| j#                  |       c}S t%        d|       c c}w c c}w )NrP  z%invalid PointInsertOperations model: )rA   r   PointsBatchr  batchr  r8  r  r  r   r  r"  r@  payloadsr  rx  r  r  r    )r   re   vectors_batchrJ  r  s        r'   convert_point_insert_operationz)RestToGrpc.convert_point_insert_operation  s!    eT--.030O0O##S%91M !U[[__!56    !;;EKKOOC<PQ)#. !;;//; #225;;3G3G3LM!  t/AFNC,,U3NNDUGLMM Os   BE*E/c                 $    | j                  |      S r5   )r  r   s     r'   convert_update_operationz#RestToGrpc.convert_update_operation0  s    22599r\   c           
         t        |t        j                        r|j                  j                  r%| j                  |j                  j                        nd }t        j                  t        j                  j                  | j                  |j                        |            S t        |t        j                        r|j                  j                  r%| j                  |j                  j                        nd }| j                  |j                        }t        j                  j                  ||      }t        j                  |      S t        |t        j                        r5|j                  j                   r+t        j"                  |j                  j                         }nO|j                  j$                  r+t        j&                  |j                  j$                        }nt)        d|       |j                  j                  r%| j                  |j                  j                        nd }t        j                  t        j                  j+                  | j-                  |j                  j.                        | j                  |      |            S t        |t        j0                        r5|j2                  j                   r+t        j"                  |j2                  j                         }nO|j2                  j$                  r+t        j&                  |j2                  j$                        }nt)        d	|       |j2                  j                  r%| j                  |j2                  j                        nd }t        j                  t        j                  j5                  | j-                  |j2                  j.                        | j                  |      |      
      S t        |t        j6                        r&|j8                  j                   r+t        j"                  |j8                  j                         }nO|j8                  j$                  r+t        j&                  |j8                  j$                        }nt)        d|       |j8                  j                  r%| j                  |j8                  j                        nd }t        j                  t        j                  j;                  |j8                  j<                  | j                  |      |            S t        |t        j>                        r|j@                  j                  r%| j                  |j@                  j                        nd }| j                  |j@                        }t        j                  jC                  ||      }t        j                  |      S t        |t        jD                        r|jF                  j                  r%| j                  |jF                  j                        nd }t        j                  t        j                  jI                  |jF                  j                   D cg c]  }| jK                  |       c}|            S t        |t        jL                        r:|jN                  j                   r+t        j"                  |jN                  j                         }nO|jN                  j$                  r+t        j&                  |jN                  j$                        }nt)        d|       |jN                  j                  r%| j                  |jN                  j                        nd }t        j                  t        j                  jQ                  | j                  |      t        jR                  |jN                  jT                        |            S t)        d|       c c}w )N)r  r  rf  )rg  r  r  z#invalid SetPayloadOperation model: )r)   rz  r  rj  z)invalid OverwritePayloadOperation model: rl  z&invalid DeletePayloadOperation model: )rn  rz  r  ro  rq  rs  r  )rz  r  r  ru  rv  )+rA   r   rw  re  r  r  r   r  PointStructListr  ry  rh  r  DeletePointsr{  ri  r  r  r   r  r    r|  r  r)   r}  rk  OverwritePayloadr~  rm  r  rn  r  rp  ClearPayloadr  rr  r  r?  r  rt  r  r  r  )r   re   r  rz  rg  rp  r  s          r'   r  z*RestToGrpc.convert_points_update_operation4  s    eT112 <<)) ..u||/E/EF 
 --11AA==ellK'9 B   t334 <<)) ..u||/E/EF 
 "99%,,GO 66CC&#5 D M --+  t778  ''"&"3"35;L;L;S;S"T""))"&"5"5U=N=N=U=U"V #Fug!NOO $$.. ..u/@/@/J/JK  -- 66AA//0A0A0I0IJ$'$?$?$P'9 B   t==>&&--"&"3"35;R;R;Y;Y"Z((//"&"5"5U=T=T=[=["\ ?wG  **44 ..u/F/F/P/PQ  --"&"<"<"M"M//0G0G0O0OP$'$?$?$P'9 #N #  t::;##**"&"3"35;O;O;V;V"W%%,,"&"5"5U=Q=Q=X=X"Y <UGD  ''11 ..u/C/C/M/MN  --#99GG--22$'$?$?$P'9  H    t99: &&00 ..u/B/B/L/LM 
 "99%:M:MNO 66CC&#5 D M --+  t::; ''11 ..u/C/C/M/MN  --#99GGFKFZFZFaFa=B11%8 (:	  H    t::;##**"&"3"35;O;O;V;V"W%%,,"&"5"5U=Q=Q=X=X"Y <UGD  ''11 ..u/C/C/M/MN  --#99GG$'$?$?$P 00u7K7K7R7RS'9  H    >ugFGG=s   0_9c                 j    t        |t        j                        r|j                  S t	        d|       )Nzinvalid InitFrom model: )rA   r   r  r  r    r   s     r'   r  zRestToGrpc.convert_init_from  s/    eT]]+###7w?@@r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        j                  j                  S t        d|       r  )r   r  r  r   r  r  r  r    r   s     r'   rU  z%RestToGrpc.convert_recommend_strategy  sa    D**999))777d,,777))333@HIIr\   c                     t        j                  |j                  |j                  nd |j                  |j                  nd |j                   | j                  |j                              S d       S )Nr  )r   r  r   r   r  r  r   s     r'   convert_sparse_index_paramsz&RestToGrpc.convert_sparse_index_params  sj    %%-2-F-F-R))X\%*]]%>EMMD=B^^=WS))%..9
 	

 ^b
 	
r\   c                     |t         j                  j                  k(  rt        j                  j                  S |t         j                  j
                  k(  rt        t        j                  d      S t        d|       r  )r   r  r  r   r  r  r   r    r   s     r'   r  zRestToGrpc.convert_modifier  sZ    DMM%%%==$$$dmm(((4==&117w?@@r\   c                     t        j                  |j                  | j                  |j                        nd |j                   | j                  |j                              S d       S )Nr  )r   r  r  r  r  r  r   s     r'   r  z'RestToGrpc.convert_sparse_vector_params  sc     &&@E@W//<]a 9>8R$$U^^4
 	

 Y]
 	
r\   c                 p     t        j                  t         fd|j                         D                    S )Nc              3   J   K   | ]  \  }}|j                  |      f  y wr5   r  r  s      r'   r;   z:RestToGrpc.convert_sparse_vector_config.<locals>.<genexpr>  s%     `hc3c3;;C@A`r1  r  )r   r  rH   rI   r   s   ` r'   r  z'RestToGrpc.convert_sparse_vector_config  s0     &&`RWR]R]R_``
 	
r\   c                     t        |t              rt        j                  |      S t        |t              rt        j                  |      S t        d|       )N)numberrk  r  )rA   rC   r   r  rE   r    r   s     r'   r  zRestToGrpc.convert_shard_key  sG    eS!==..eS!==//3E7;<<r\   c                 @   t        |t        t        j                              r&t	        j
                  | j                  |      g      S t        |t              r3t	        j
                  |D cg c]  }| j                  |       c}      S t        d|       c c}w )N)r  z invalid ShardKeySelector model: )	rA   r   r   r  r   r  r  rF   r    )r   re   rV   s      r'   r  z%RestToGrpc.convert_shard_key_selector  s    e0?@((S5J5J55Q4RSSeT"(([`4aTWS5J5J35O4abb;E7CDD 5bs   -Bc                     |t         j                  j                  k(  rt        j                  S |t         j                  j
                  k(  rt        j                  S t        d|       r  )r   r  r  r   r  r  r  r    r   s     r'   r  z"RestToGrpc.convert_sharding_method  sQ    D'',,,99d))000;;=eWEFFr\   c                 n    t        j                  |j                  |j                  |j                        S )Nr  )r   r  r  r  r  r   s     r'   r  z%RestToGrpc.convert_health_check_reply   s*    $$++MM<<
 	
r\   c                     t        j                  | j                  |j                        | j                  |j                        |j
                        S r  )r   r  r@  r  r  r  r   s     r'   r  z%RestToGrpc.convert_search_matrix_pair(  s@    $$++EGG4++EGG4++
 	
r\   c                     t        j                  |j                  D cg c]  }| j                  |       c}      S c c}w r  )r   r  r\  r  r]  s      r'   r  z&RestToGrpc.convert_search_matrix_pairs0  s7     %%DIKKPD311$7P
 	
PrK  c                     t        j                  t        |j                        t        |j                        t        |j
                        |j                  D cg c]  }| j                  |       c}      S c c}w r  )r   r   rF   r  r  r  r  r@  r  s      r'   r  z(RestToGrpc.convert_search_matrix_offsets8  sb     ''U../U../%AFK..t4K	
 	
 Lr  N(;  r  r  r  r  r   r   r   r   r   r   r   r   r   r   r/  r   r   r   r   r   r   r   r   r.  r   r  r  r   r   rE   r  r  r   r8  r  r  r  rh   r  r:  r<  r?  r=  rG  r   rS  rT  rZ  r[  r`  r   rd  r   rh  r   rp  rr  rv  rw  r  r}  r  r  r  r  r  r  r  r  r  r   r  r   r   r  r   r  r  r   r   r   r   r  r   r   r  r  r   r   r  r]  r  r  r  r  r   r  r  r  r  r  r  r   r  r   r  rv  r  rz  r  r  r|  r6  ry  r  r  r  r  r  r@  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  OrderByInterfacer  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r"  r  r'  r#  r  r  r  r  rL  r	  r  r  BatchVectorStructrC   r  NamedVectorStructr   rD   r
   r  r  r   rB  rD  r  rG  r  rN  rT  rV  rY  r  rZ  r  r_  rd  re  ri  rl  rp  rs  r  r  QueryInterfacer  r  r  r  r  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r!  r  r"  r  r  r  r  r  r  r  r  r  r  r  r4  r  r  r5  r  r  r6  r  r"  r  r  r   r<  rq  r>  r?  rC  rG  rL  rD  r  rM  rS  rT  r  r  r\  r]  r  r  PointInsertOperationsr  r  r  r  r  r  r  r  rU  r  r  r  r  r  r  r  r	   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r\   r'   r"  r"  ;  s   
4;; 
4;; 
 
, 
$** 
 
 
 U8T>%: y   
4+=+= 
$BTBT 
 
 _t~~ _$.. _ _ ;..;		#	#; ;
 
D,?,? 
DDWDW 
 
 
Ed.C.C 
EH]H] 
E 
E ET-B-B EtG[G[ E E ^d3334^	c4)))	*^ ^
 
t/D/D 
I_I_ 
 
 #H,,#H		 	 #H #HJ F0F0F F4KaKa F F( 
$*;*; 
@Q@Q 
 
 A):): At?P?P A A 
T-@-@ 
TEXEX 
 

 =)9)9 =d>N>N = = 
)9)9 
d>N>N 
 

 =t/D/D =I^I^ = = ;d.B.B ;tG[G[ ; ; 
T-A-A 
dFZFZ 
 
 

$*;*; 

@Q@Q 

 

 d)9)9 dd>N>N d d ? ?DOO ? ? 	
)9)9 	
d>N>N 	
 	
 
)9)9 
d>N>N 
 
 
T-@-@ 
TEXEX 
 
 
)9)9 
d>N>N 
 
 MDLL MT#tzz/5J M M 
T-@-@ 
TEXEX 
 
 CD,?,? CDDWDW C C2 
D,>,> 
4CUCU 
 
 
d.C.C 
H]H] 
 
 
 
D<O<O 
 
 
t~~ 
$:L:L 
 
 
=T]] 
=t}} 
= 
= 
d.C.C 
H]H] 
 
, 

d.C.C 

HaHa 

 

 
--
		"	"
 
 
))
<?
			
 
@ ;dmm ; ; ; :$** : : :: DT-A-A DdFZFZ D D 
d.C.C 
H]H] 
 
  5 56	dll	    5 56	dkk	 $ 44+@+@ 4TEWEW 4 4 Ed.C.C EHZHZ E E 
D4E4E 
$++ 
 
 N$*?*? NDDUDU N N 
&&
 
	 	 
 
 Dd.B.B Dt|| D D 	CD,?,? 	CDDWDW 	C 	C >dnn > > >  	DT-A-A 	DdF^F^ 	D 	D 9((9		!	!9 9
 
I--
I		!	!
I 
I >t~~ >$.. > > >dnn > > > 	
T\\ 	
dll 	
 	
 E))E	E E ? ?DOO ? ? 
D,>,> 
4== 
 
 
4;; 
43F3F 
 
 )DKK )D<O<O ) ) 3)9)9 3d>N>N 3 3 	
,,	
		!	!	
 	
 =T]] =t}} = = 
$*;*; 
@Q@Q 
 
. 
t/E/E 
$J`J` 
 

 J..J		#	#J J 
F4+=+= 
F$BTBT 
F 
F E$*;*; E E E8 D DT=U=U D D J**J9<J	dll	J J 
J**
J	tE{HT%7%78(3-G	H
J 
J ,e ,9I9I , , M$*;*; M@Q@Q M M 
tDK/@ 
TEZEZ 
 

 @)9)9 @d>N>N @ @ 
D,?,? 
DDWDW 
 
 
t/?/? 
DDYDY 
 
 A$*;*; A@Q@Q A A 
4+=+= 
$BTBT 
 
 ;4;; ;4;; ; ; ;4;; ;4;; ; ; :$** : : :0 =D,?,? =DJJ = = 
4== 
T=O=O 
 
( 
&&
9<
			
 
< B&&B9<B			B B
 "
%%"
8;"
			"
 "
H A%%A8;A			A A
 ,
)),
<?,
			,
 ,
\ D((D;>D			D D
 .
((.
;>.
			.
 .
` E))E<?E			E E
 
F4+=+= 
F$BTBT 
F 
F 

d.B.B 

tG[G[ 

 

 
++
		 	 
 
 Y++Y		 	 Y Y
 ]t/D/D ]I^I^ ] ] :T-@-@ :TEXEX : : &$*>*> &4CWCW & & `,,`		!	!` `
 Vd.B.B VtG[G[ V V 
--
		"	"
 
 
D,?,? 
DDWDW 
 
 
HT-A-A 
HdFZFZ 
H 
H 
L,,
L		!	!
L 
L F4+=+= F$BTBT F F 
11
		 	 
 
 
22
		!	!
 
 
11
		 	 
 
 Id.C.C IH]H] I I K++K		 	 K K$ 
11
		&	&
 
 
$*;*; 
@Q@Q 
 
 
$*;*; 
@Q@Q 
 

 
 
DOO 
 
 @T\\ @dll @ @" 
 
DOO 
 
 O//O		$	$O O, 
t/D/D 
I^I^ 
 
 J0F0F J4KaKa J J N..N	d	N N0 :T-A-A :dF`F` : : UH((UH		#	#UH UHn Admm A A A Jt/E/E J$J`J` J J 
0F0F 
4KaKa 
 
 AT]] At}} A A 

++

		 	 

 

 
C!8!889
		 	 
 
 =dmm = = = Et/D/D EI^I^ E E GD,?,? GDDWDW G G 
t/?/? 
DDYDY 
 
 
t/D/D 
I^I^ 
 
 
22
			
 
 
44
		!	!
 
r\   r"  N)0r   r   r   typingr   r   r   r	   r
   r   r   r   r   google.protobuf.json_formatr   google.protobuf.timestamp_pb2r   google.protobuf.pyext._messager   ImportErrorqdrant_clientr   qdrant_client.grpcr   r   r   r   qdrant_client.http.modelsr   r   qdrant_client._pydantic_compatr   r   &qdrant_client.conversions.common_typesr   rE   rB   r(   r7   rT   r`   rd   rh   rj   r{   r}   r   r"  r  r\   r'   <module>r)     s0   - - W W W 5 3	B  B B 4 H F#s #3 #4 # =3 =5 =,7 73 7@KT#s(^ KS%Z0@ KI4U
+ IS#X IBT-C-C B B*:T^^ :@V@V :*f
 f
`5F
 F
e9  		s   C% %C-,C-