@@ -38,20 +38,22 @@ def _parse_env_param(name: str, value: Any, expected_type: Type) -> Any:
3838 raise ValueError (f"Invalid type for { name } : expected { expected_type .__name__ } , got { type (value ).__name__ } " )
3939
4040
41- def _read_config_param (name : str , expected_type : Type , provided_value : Optional [Any ] = None , required : bool = False ) -> Any :
41+ def _read_config_param (name : str , expected_type : Type , provided_value : Optional [Any ] = None , default_value : Optional [ Any ] = None , required : bool = False ) -> Any :
4242 # Check if the value was provided as an argument
4343 if provided_value is not None :
4444 return provided_value
4545
4646 # Check if the value was provided as an environment variable
4747 env_value = os .getenv (f'GRAPHSIGNAL_{ name .upper ()} ' )
48- if env_value is None :
49- if required :
50- raise ValueError (f"Missing required argument: { name } " )
51- return None
48+ if env_value is not None :
49+ parsed_env_value = _parse_env_param (name , env_value , expected_type )
50+ if parsed_env_value is not None :
51+ return parsed_env_value
52+
53+ if required :
54+ raise ValueError (f"Missing required argument: { name } " )
5255
53- # Parse the environment variable
54- return _parse_env_param (name , env_value , expected_type )
56+ return default_value
5557
5658
5759def _read_config_tags (provided_value : Optional [dict ] = None , prefix : str = "GRAPHSIGNAL_TAG_" ) -> Dict [str , str ]:
@@ -68,10 +70,10 @@ def configure(
6870 api_url : Optional [str ] = None ,
6971 deployment : Optional [str ] = None ,
7072 tags : Optional [Dict [str , str ]] = None ,
71- auto_instrument : Optional [bool ] = True ,
72- record_payloads : Optional [bool ] = True ,
73- profiling_rate : Optional [float ] = 0.1 ,
74- debug_mode : Optional [bool ] = False
73+ auto_instrument : Optional [bool ] = None ,
74+ record_payloads : Optional [bool ] = None ,
75+ profiling_rate : Optional [float ] = None ,
76+ debug_mode : Optional [bool ] = None
7577) -> None :
7678 global _tracer
7779
@@ -82,10 +84,10 @@ def configure(
8284 api_key = _read_config_param ("api_key" , str , api_key , required = True )
8385 api_url = _read_config_param ("api_url" , str , api_url )
8486 tags = _read_config_tags (tags )
85- auto_instrument = _read_config_param ("auto_instrument" , bool , auto_instrument )
86- record_payloads = _read_config_param ("record_payloads" , bool , record_payloads )
87- profiling_rate = _read_config_param ("profiling_rate" , float , profiling_rate )
88- debug_mode = _read_config_param ("debug_mode" , bool , debug_mode )
87+ auto_instrument = _read_config_param ("auto_instrument" , bool , auto_instrument , default_value = True )
88+ record_payloads = _read_config_param ("record_payloads" , bool , record_payloads , default_value = True )
89+ profiling_rate = _read_config_param ("profiling_rate" , float , profiling_rate , default_value = 0.1 )
90+ debug_mode = _read_config_param ("debug_mode" , bool , debug_mode , default_value = False )
8991
9092 # left for compatibility
9193 if deployment and isinstance (deployment , str ):
0 commit comments