Apply same debug reset logic to --debug-web - reset to false at startup unless...

Apply same debug reset logic to --debug-web - reset to false at startup unless explicitly set via CLI, config file, or environment variable
parent f49cc826
...@@ -37,7 +37,7 @@ from vidai.config import ( ...@@ -37,7 +37,7 @@ from vidai.config import (
get_default_model_type, set_default_model_type, get_default_model_type, set_default_model_type,
get_analysis_backend, set_analysis_backend, get_training_backend, set_training_backend, get_analysis_backend, set_analysis_backend, get_training_backend, set_training_backend,
get_optimize, set_optimize, get_ffmpeg, set_ffmpeg, get_flash, set_flash, get_optimize, set_optimize, get_ffmpeg, set_ffmpeg, get_flash, set_flash,
get_host, set_host, get_port, set_port, get_debug, set_debug, get_allowed_dir, set_allowed_dir, get_host, set_host, get_port, set_port, get_debug, set_debug, get_debug_web, set_debug_web, get_allowed_dir, set_allowed_dir,
get_comm_type, set_comm_type, get_cluster_host, set_cluster_host, get_cluster_port, get_comm_type, set_comm_type, get_cluster_host, set_cluster_host, get_cluster_port,
set_cluster_port, get_cluster_token, set_cluster_token, is_cluster_client, set_cluster_client, set_cluster_port, get_cluster_token, set_cluster_token, is_cluster_client, set_cluster_client,
get_web_host, set_web_host, get_web_port, set_web_port, get_web_host, set_web_host, get_web_port, set_web_port,
...@@ -350,6 +350,7 @@ Examples: ...@@ -350,6 +350,7 @@ Examples:
set_backend_web_port(args.backend_web_port) set_backend_web_port(args.backend_web_port)
set_backend_worker_port(args.backend_worker_port) set_backend_worker_port(args.backend_worker_port)
set_debug(args.debug) set_debug(args.debug)
set_debug_web(args.debug_web)
set_cluster_host(args.cluster_host) set_cluster_host(args.cluster_host)
set_cluster_port(args.cluster_port) set_cluster_port(args.cluster_port)
set_cluster_token(args.token) set_cluster_token(args.token)
...@@ -468,7 +469,7 @@ Examples: ...@@ -468,7 +469,7 @@ Examples:
# Start web process # Start web process
web_cmd = [sys.executable, '-m', 'vidai.web'] web_cmd = [sys.executable, '-m', 'vidai.web']
if args.debug_web: if get_debug_web():
web_cmd.append('--debug-web') web_cmd.append('--debug-web')
web_proc = subprocess.Popen(web_cmd) web_proc = subprocess.Popen(web_cmd)
......
...@@ -47,6 +47,19 @@ def initialize_config(cli_args=None) -> None: ...@@ -47,6 +47,19 @@ def initialize_config(cli_args=None) -> None:
# Reset debug to false if not explicitly set # Reset debug to false if not explicitly set
initial_config['debug'] = 'false' initial_config['debug'] = 'false'
# Special handling for debug_web: same logic as debug
debug_web_explicitly_set = False
if cli_args and hasattr(cli_args, 'debug_web'):
debug_web_explicitly_set = True
elif 'debug_web' in initial_config and initial_config['debug_web'] != DEFAULTS['debug_web']:
debug_web_explicitly_set = True
elif f'VIDAI_DEBUG_WEB' in os.environ:
debug_web_explicitly_set = True
if not debug_web_explicitly_set:
# Reset debug_web to false if not explicitly set
initial_config['debug_web'] = 'false'
# Store all environment variables that start with VIDAI_ # Store all environment variables that start with VIDAI_
for env_key, env_value in os.environ.items(): for env_key, env_value in os.environ.items():
if env_key.startswith('VIDAI_'): if env_key.startswith('VIDAI_'):
...@@ -231,6 +244,16 @@ def set_debug(debug: bool) -> None: ...@@ -231,6 +244,16 @@ def set_debug(debug: bool) -> None:
set_config('debug', 'true' if debug else 'false') set_config('debug', 'true' if debug else 'false')
def get_debug_web() -> bool:
"""Get debug-web setting."""
return get_config('debug_web', 'false').lower() == 'true'
def set_debug_web(debug_web: bool) -> None:
"""Set debug-web setting."""
set_config('debug_web', 'true' if debug_web else 'false')
def get_allowed_dir() -> str: def get_allowed_dir() -> str:
"""Get allowed directory.""" """Get allowed directory."""
return get_config('allowed_dir', '') return get_config('allowed_dir', '')
...@@ -315,6 +338,7 @@ def get_all_settings() -> dict: ...@@ -315,6 +338,7 @@ def get_all_settings() -> dict:
'host': config.get('host', '0.0.0.0'), 'host': config.get('host', '0.0.0.0'),
'port': int(config.get('port', '5000')), 'port': int(config.get('port', '5000')),
'debug': config.get('debug', 'false').lower() == 'true', 'debug': config.get('debug', 'false').lower() == 'true',
'debug_web': config.get('debug_web', 'false').lower() == 'true',
'allowed_dir': config.get('allowed_dir', ''), 'allowed_dir': config.get('allowed_dir', ''),
'comm_type': config.get('comm_type', 'unix'), 'comm_type': config.get('comm_type', 'unix'),
'max_concurrent_jobs': int(config.get('max_concurrent_jobs', '1')), 'max_concurrent_jobs': int(config.get('max_concurrent_jobs', '1')),
......
...@@ -58,6 +58,7 @@ DEFAULTS = { ...@@ -58,6 +58,7 @@ DEFAULTS = {
'host': '0.0.0.0', 'host': '0.0.0.0',
'port': '5000', 'port': '5000',
'debug': 'false', 'debug': 'false',
'debug_web': 'false',
'allowed_dir': '', 'allowed_dir': '',
'comm_type': 'unix', 'comm_type': 'unix',
'max_concurrent_jobs': '1', 'max_concurrent_jobs': '1',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment