55from typing import NamedTuple
66import os
77
8+ import certifi
89from loguru import logger
910import requests
1011import 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-
213216Config = _CONFIG ()
214217
215218# Init
0 commit comments