@@ -38,20 +38,22 @@ def _parse_env_param(name: str, value: Any, expected_type: Type) -> Any:
38
38
raise ValueError (f"Invalid type for { name } : expected { expected_type .__name__ } , got { type (value ).__name__ } " )
39
39
40
40
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 :
42
42
# Check if the value was provided as an argument
43
43
if provided_value is not None :
44
44
return provided_value
45
45
46
46
# Check if the value was provided as an environment variable
47
47
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 } " )
52
55
53
- # Parse the environment variable
54
- return _parse_env_param (name , env_value , expected_type )
56
+ return default_value
55
57
56
58
57
59
def _read_config_tags (provided_value : Optional [dict ] = None , prefix : str = "GRAPHSIGNAL_TAG_" ) -> Dict [str , str ]:
@@ -68,10 +70,10 @@ def configure(
68
70
api_url : Optional [str ] = None ,
69
71
deployment : Optional [str ] = None ,
70
72
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
75
77
) -> None :
76
78
global _tracer
77
79
@@ -82,10 +84,10 @@ def configure(
82
84
api_key = _read_config_param ("api_key" , str , api_key , required = True )
83
85
api_url = _read_config_param ("api_url" , str , api_url )
84
86
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 )
89
91
90
92
# left for compatibility
91
93
if deployment and isinstance (deployment , str ):
0 commit comments