You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import os
|
|
|
|
|
|
def _parse_bool(value):
|
|
if isinstance(value, bool):
|
|
return value
|
|
text = str(value).strip().lower()
|
|
return text in {"1", "true", "yes", "on"}
|
|
|
|
|
|
def _parse_int(value):
|
|
return int(str(value).strip())
|
|
|
|
|
|
def _parse_str(value):
|
|
return str(value)
|
|
|
|
|
|
def _parse_source(value):
|
|
text = str(value).strip()
|
|
if text and text.lstrip("+-").isdigit():
|
|
return int(text)
|
|
return text
|
|
|
|
|
|
def _apply_env_overrides(namespace, spec):
|
|
for env_name, (key, parser) in spec.items():
|
|
if env_name not in os.environ:
|
|
continue
|
|
namespace[key] = parser(os.environ[env_name])
|
|
|
|
|
|
def apply_config_env_overrides(namespace):
|
|
_apply_env_overrides(
|
|
namespace,
|
|
{
|
|
"FPV_MODEL_PATH": ("MODEL_PATH", _parse_str),
|
|
"FPV_SOURCE": ("SOURCE", _parse_source),
|
|
"FPV_VIDEO_REALTIME": ("VIDEO_REALTIME", _parse_bool),
|
|
"FPV_SHOW_OUTPUT": ("SHOW_OUTPUT", _parse_bool),
|
|
"FPV_SAVE_INFER_VIDEO": ("SAVE_INFER_VIDEO", _parse_bool),
|
|
"FPV_OUT_VIDEO_PATH": ("OUT_VIDEO_PATH", _parse_str),
|
|
"FPV_GUIDANCE_EXPORT_ENABLE": ("GUIDANCE_EXPORT_ENABLE", _parse_bool),
|
|
"FPV_GUIDANCE_EXPORT_PATH": ("GUIDANCE_EXPORT_PATH", _parse_str),
|
|
},
|
|
)
|
|
|
|
|
|
def apply_intercept_env_overrides(namespace):
|
|
_apply_env_overrides(
|
|
namespace,
|
|
{
|
|
"FPV_AUTOPILOT_ENABLE": ("AUTOPILOT_ENABLE", _parse_bool),
|
|
"FPV_AUTOPILOT_BACKEND": ("AUTOPILOT_BACKEND", _parse_str),
|
|
"FPV_AUTOPILOT_JSON_PATH": ("AUTOPILOT_JSON_PATH", _parse_str),
|
|
"FPV_MAVLINK_CONNECTION": ("MAVLINK_CONNECTION", _parse_str),
|
|
"FPV_MSP_PORT": ("MSP_PORT", _parse_str),
|
|
"FPV_PROTO_UDP_ENABLE": ("PROTO_UDP_ENABLE", _parse_bool),
|
|
"FPV_PROTO_UDP_HOST": ("PROTO_UDP_HOST", _parse_str),
|
|
"FPV_PROTO_UDP_PORT": ("PROTO_UDP_PORT", _parse_int),
|
|
"FPV_PROTO_UDP_DESCRIPTOR": ("PROTO_UDP_DESCRIPTOR", _parse_int),
|
|
},
|
|
)
|