Skip to content

Commit 39fd2f4

Browse files
authored
Merge pull request #16 from pinecone-io/ch10321
[WIP]Using gRPC inbuilt async
2 parents 32acacb + 852e11f commit 39fd2f4

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

pinecone/core/grpc/index_grpc.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,11 @@ def parse_query_response(response: dict):
183183
for match in response['results']:
184184
namespace = match.get('namespace', '')
185185
m = []
186-
for item in match['matches']:
187-
sc = ScoredVector(id=item['id'], score=item.get('score', 0.0), values=item.get('values', []),
188-
metadata=item.get('metadata', {}))
189-
m.append(sc)
186+
if 'matches' in match:
187+
for item in match['matches']:
188+
sc = ScoredVector(id=item['id'], score=item.get('score', 0.0), values=item.get('values', []),
189+
metadata=item.get('metadata', {}))
190+
m.append(sc)
190191
res.append(SingleQueryResults(matches=m, namespace=namespace))
191192
return QueryResponse(results=res, _check_type=False)
192193

@@ -213,7 +214,7 @@ def stub_class(self):
213214
return VectorServiceStub
214215

215216
@sentry
216-
def upsert(self, vectors, **kwargs):
217+
def upsert(self, vectors, async_req=False, **kwargs):
217218
def _vector_transform(item):
218219
if isinstance(item, GRPCVector):
219220
return item
@@ -224,16 +225,19 @@ def _vector_transform(item):
224225

225226
request = UpsertRequest(vectors=list(map(_vector_transform, vectors)), **kwargs)
226227
timeout = kwargs.pop('timeout', None)
227-
228-
response = self._wrap_grpc_call(self.stub.Upsert, request, timeout=timeout)
229-
return parse_upsert_response(response)
228+
if async_req:
229+
return self._wrap_grpc_call(self.stub.Upsert.future, request, timeout=timeout)
230+
else:
231+
return self._wrap_grpc_call(self.stub.Upsert, request, timeout=timeout)
230232

231233
@sentry
232-
def delete(self, *args, **kwargs):
234+
def delete(self, *args, async_req=False, **kwargs):
233235
request = DeleteRequest(*args, **kwargs)
234236
timeout = kwargs.pop('timeout', None)
235-
response = self._wrap_grpc_call(self.stub.Delete, request, timeout=timeout)
236-
return response
237+
if async_req:
238+
return self._wrap_grpc_call(self.stub.Delete.future, request, timeout=timeout)
239+
else:
240+
return self._wrap_grpc_call(self.stub.Delete, request, timeout=timeout)
237241

238242
@sentry
239243
def fetch(self, *args, **kwargs):

0 commit comments

Comments
 (0)