improve error messages, fix invalid value for TELEMETRY_ENABLED
This commit is contained in:
parent
4ddc014d28
commit
27edea4320
@ -157,11 +157,12 @@ def get_default_value_for_field(field: dataclasses.Field) -> Any:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def interpret_boolean_env(value: str) -> bool:
|
def interpret_boolean_env(value: str, field_name: str) -> bool:
|
||||||
"""Interpret a boolean environment variable value.
|
"""Interpret a boolean environment variable value.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: The environment variable value.
|
value: The environment variable value.
|
||||||
|
field_name: The field name.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
The interpreted value.
|
The interpreted value.
|
||||||
@ -176,14 +177,15 @@ def interpret_boolean_env(value: str) -> bool:
|
|||||||
return True
|
return True
|
||||||
elif value.lower() in false_values:
|
elif value.lower() in false_values:
|
||||||
return False
|
return False
|
||||||
raise EnvironmentVarValueError(f"Invalid boolean value: {value}")
|
raise EnvironmentVarValueError(f"Invalid boolean value: {value} for {field_name}")
|
||||||
|
|
||||||
|
|
||||||
def interpret_int_env(value: str) -> int:
|
def interpret_int_env(value: str, field_name: str) -> int:
|
||||||
"""Interpret an integer environment variable value.
|
"""Interpret an integer environment variable value.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: The environment variable value.
|
value: The environment variable value.
|
||||||
|
field_name: The field name.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
The interpreted value.
|
The interpreted value.
|
||||||
@ -194,14 +196,17 @@ def interpret_int_env(value: str) -> int:
|
|||||||
try:
|
try:
|
||||||
return int(value)
|
return int(value)
|
||||||
except ValueError as ve:
|
except ValueError as ve:
|
||||||
raise EnvironmentVarValueError(f"Invalid integer value: {value}") from ve
|
raise EnvironmentVarValueError(
|
||||||
|
f"Invalid integer value: {value} for {field_name}"
|
||||||
|
) from ve
|
||||||
|
|
||||||
|
|
||||||
def interpret_path_env(value: str) -> Path:
|
def interpret_path_env(value: str, field_name: str) -> Path:
|
||||||
"""Interpret a path environment variable value.
|
"""Interpret a path environment variable value.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: The environment variable value.
|
value: The environment variable value.
|
||||||
|
field_name: The field name.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
The interpreted value.
|
The interpreted value.
|
||||||
@ -211,7 +216,7 @@ def interpret_path_env(value: str) -> Path:
|
|||||||
"""
|
"""
|
||||||
path = Path(value)
|
path = Path(value)
|
||||||
if not path.exists():
|
if not path.exists():
|
||||||
raise EnvironmentVarValueError(f"Path does not exist: {path}")
|
raise EnvironmentVarValueError(f"Path does not exist: {path} for {field_name}")
|
||||||
return path
|
return path
|
||||||
|
|
||||||
|
|
||||||
@ -239,13 +244,13 @@ def interpret_env_var_value(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if field_type is bool:
|
if field_type is bool:
|
||||||
return interpret_boolean_env(value)
|
return interpret_boolean_env(value, field_name)
|
||||||
elif field_type is str:
|
elif field_type is str:
|
||||||
return value
|
return value
|
||||||
elif field_type is int:
|
elif field_type is int:
|
||||||
return interpret_int_env(value)
|
return interpret_int_env(value, field_name)
|
||||||
elif field_type is Path:
|
elif field_type is Path:
|
||||||
return interpret_path_env(value)
|
return interpret_path_env(value, field_name)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
|
@ -249,7 +249,8 @@ class AppHarness:
|
|||||||
return textwrap.dedent(source)
|
return textwrap.dedent(source)
|
||||||
|
|
||||||
def _initialize_app(self):
|
def _initialize_app(self):
|
||||||
os.environ["TELEMETRY_ENABLED"] = "" # disable telemetry reporting for tests
|
# disable telemetry reporting for tests
|
||||||
|
os.environ["TELEMETRY_ENABLED"] = "true"
|
||||||
self.app_path.mkdir(parents=True, exist_ok=True)
|
self.app_path.mkdir(parents=True, exist_ok=True)
|
||||||
if self.app_source is not None:
|
if self.app_source is not None:
|
||||||
app_globals = self._get_globals_from_signature(self.app_source)
|
app_globals = self._get_globals_from_signature(self.app_source)
|
||||||
|
Loading…
Reference in New Issue
Block a user