Skip to content

Commit 0eda02b

Browse files
authored
Merge pull request #68 from pinecone-io/ch8549
Setting user agent instead of headers in the client
2 parents e91de7b + 03a1e64 commit 0eda02b

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

pinecone/core/utils/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
from pathlib import Path
77
from typing import List
88

9+
import requests
10+
import urllib3
11+
912
try:
1013
from pinecone.core.grpc.protos import vector_column_service_pb2
1114
import numpy as np
@@ -57,3 +60,10 @@ def _generate_request_id() -> str:
5760
def fix_tuple_length(t, n):
5861
"""Extend tuple t to length n by adding None items at the end of the tuple. Return the new tuple."""
5962
return t + ((None,) * (n - len(t))) if len(t) < n else t
63+
64+
65+
def get_user_agent():
66+
client_id = f'python-client-{get_version()}'
67+
user_agent_details = {'requests': requests.__version__, 'urllib3': urllib3.__version__}
68+
user_agent = '{} ({})'.format(client_id, ', '.join([f'{k}:{v}' for k, v in user_agent_details.items()]))
69+
return user_agent

pinecone/index.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@
99
from pinecone.core.utils.sentry import sentry_decorator as sentry
1010
from .core.client.models import FetchResponse, ProtobufAny, QueryRequest, QueryResponse, QueryVector, RpcStatus, \
1111
ScoredVector, SingleQueryResults, DescribeIndexStatsResponse, UpsertRequest, UpsertResponse, Vector
12-
from .core.utils.constants import CLIENT_VERSION_HEADER, CLIENT_ID
1312
from pinecone.core.client.api.vector_operations_api import VectorOperationsApi
14-
from pinecone.core.utils import fix_tuple_length
13+
from pinecone.core.utils import fix_tuple_length, get_user_agent
1514

1615
__all__ = [
1716
"Index", "FetchResponse", "ProtobufAny", "QueryRequest", "QueryResponse", "QueryVector", "RpcStatus",
@@ -42,7 +41,7 @@ def __init__(self, index_name: str, pool_threads=1):
4241
**openapi_client_config.server_variables
4342
}
4443
super().__init__(configuration=openapi_client_config, pool_threads=pool_threads)
45-
self.set_default_header(CLIENT_VERSION_HEADER, CLIENT_ID)
44+
self.user_agent = get_user_agent()
4645
self._vector_api = VectorOperationsApi(self)
4746

4847
@sentry

pinecone/manage.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from pinecone.core.client.configuration import Configuration
1313
from pinecone.core.client.model.create_request import CreateRequest
1414
from pinecone.core.client.model.patch_request import PatchRequest
15-
from pinecone.core.utils.constants import CLIENT_VERSION_HEADER, CLIENT_ID
1615
from pinecone.core.utils.sentry import sentry_decorator as sentry
16+
from pinecone.core.utils import get_user_agent
1717

1818
__all__ = [
1919
"create_index", "delete_index", "describe_index", "list_indexes", "scale_index", "IndexDescription"
@@ -30,6 +30,7 @@ class IndexDescription(NamedTuple):
3030
index_config: None
3131
status: None
3232

33+
3334
def _get_api_instance():
3435
client_config = Config.OPENAPI_CONFIG
3536
client_config.api_key = client_config.api_key or {}
@@ -41,7 +42,7 @@ def _get_api_instance():
4142
**client_config.server_variables
4243
}
4344
api_client = ApiClient(configuration=client_config)
44-
api_client.set_default_header(CLIENT_VERSION_HEADER, CLIENT_ID)
45+
api_client.user_agent = get_user_agent()
4546
api_instance = IndexOperationsApi(api_client)
4647
return api_instance
4748

@@ -158,7 +159,7 @@ def describe_index(name: str):
158159
ready = response['status']['ready']
159160
return IndexDescription(name=db['name'], index_type=db['index_type'], metric=db['metric'],
160161
replicas=db['replicas'], dimension=db['dimension'], shards=db['shards'],
161-
index_config=db['index_config'],status={'ready':ready})
162+
index_config=db['index_config'], status={'ready': ready})
162163

163164

164165
@sentry

0 commit comments

Comments
 (0)