Skip to content

Commit 4d0139d

Browse files
committed
Set default openapi_config ssl_ca_cert bundle to point to certifi bundle
1 parent 385e613 commit 4d0139d

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

pinecone/config.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import NamedTuple
66
import os
77

8+
import certifi
89
from loguru import logger
910
import requests
1011
import sentry_sdk
@@ -50,6 +51,7 @@ class _CONFIG:
5051
"""
5152

5253
def __init__(self):
54+
self._loguru_handler_id = None
5355
self.reset()
5456

5557
def validate(self):
@@ -108,11 +110,11 @@ def reset(self, config_file=None, **kwargs):
108110
self._config = config
109111

110112
# Set OpenAPI client config
113+
default_openapi_config = Configuration.get_default_copy()
114+
default_openapi_config.ssl_ca_cert = certifi.where()
111115
openapi_config = (
112116
kwargs.pop("openapi_config", None)
113-
or os.getenv("PINECONE_OPENAPI_CONFIG")
114-
or file_config.pop("openapi_config", None)
115-
or Configuration.get_default_copy()
117+
or default_openapi_config
116118
)
117119

118120
config = config._replace(openapi_config=openapi_config)
@@ -122,8 +124,12 @@ def reset(self, config_file=None, **kwargs):
122124
log_level = (
123125
kwargs.pop("log_level", None)
124126
or os.getenv("PINECONE_LOG_LEVEL")
127+
or os.getenv("PINECONE_LOGGING")
125128
or file_config.pop("log_level", None)
126129
)
130+
if log_level or not self._loguru_handler_id:
131+
logger.remove(self._loguru_handler_id)
132+
self._loguru_handler_id = logger.add(sys.stdout, enqueue=True, level=(log_level or "ERROR"))
127133
config = config._replace(log_level=log_level)
128134
self._config = config
129135

@@ -207,9 +213,6 @@ def init(api_key: str = None, host: str = None, environment: str = None, project
207213
logger.warning("API key is required.")
208214

209215

210-
logger.remove()
211-
logger.add(sys.stdout, enqueue=True, level=(os.getenv("PINECONE_LOGGING") or "ERROR"))
212-
213216
Config = _CONFIG()
214217

215218
# Init

tests/unit/test_config.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import pinecone
2+
from pinecone.config import logger, Config
3+
4+
5+
def test_update_log_level():
6+
default_level = 'ERROR'
7+
assert list(logger._core.handlers.values())[0].levelno == logger.level(default_level).no
8+
new_level = 'INFO'
9+
pinecone.init(log_level=new_level)
10+
assert list(logger._core.handlers.values())[0].levelno == logger.level(new_level).no
11+
12+
13+
def test_multi_init():
14+
env = 'test-env'
15+
level = 'INFO'
16+
# first init() sets log level
17+
pinecone.init(log_level=level)
18+
assert Config.ENVIRONMENT == 'us-west1-gcp'
19+
assert list(logger._core.handlers.values())[0].levelno == logger.level(level).no
20+
# next init() shouldn't clobber log level
21+
pinecone.init(environment=env)
22+
assert Config.ENVIRONMENT == env
23+
assert list(logger._core.handlers.values())[0].levelno == logger.level(level).no

0 commit comments

Comments
 (0)