From 0d1b362217d41f37dc202c741cc02093fde5f39c Mon Sep 17 00:00:00 2001 From: Abdelkouddous LHACHIMI Date: Wed, 6 May 2026 03:24:56 +0100 Subject: [PATCH] --config CLI Param fix --- eb_dashboard.py | 11 ++++++----- eb_dashboard_excel_export.py | 4 ++-- eb_dashboard_quality_checks.py | 4 ++-- eb_dashboard_utils.py | 16 ++++++++++++++++ 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/eb_dashboard.py b/eb_dashboard.py index 12eb131..88a6993 100644 --- a/eb_dashboard.py +++ b/eb_dashboard.py @@ -86,6 +86,8 @@ from eb_dashboard_utils import ( clear_httpx_client, get_thread_position, get_config_path, + set_dashboard_config_path_override, + get_dashboard_config_path, thread_local_storage, run_with_context ) @@ -130,7 +132,6 @@ _user_interaction_lock = threading.Lock() # Global variables (mutable, set at runtime - not constants) inclusions_mapping_config = [] organizations_mapping_config = [] -_dashboard_config_path_override = None # Set by --config CLI arg if provided excel_export_config = None excel_export_enabled = False @@ -162,9 +163,9 @@ if "--config" in sys.argv: _raw_config_path = sys.argv[_idx + 1] del sys.argv[_idx:_idx + 2] if os.path.isabs(_raw_config_path): - _dashboard_config_path_override = _raw_config_path + set_dashboard_config_path_override(_raw_config_path) else: - _dashboard_config_path_override = os.path.join(get_config_path(), _raw_config_path) + set_dashboard_config_path_override(os.path.join(get_config_path(), _raw_config_path)) # --- Progress Bar Configuration --- # NOTE: BAR_N_FMT_WIDTH, BAR_TOTAL_FMT_WIDTH, BAR_TIME_WIDTH, BAR_RATE_WIDTH @@ -471,7 +472,7 @@ def load_json_file(filename): def load_inclusions_mapping_config(): """Loads and validates the inclusions mapping configuration from the Excel file.""" global inclusions_mapping_config - config_path = _dashboard_config_path_override or os.path.join(get_config_path(), DASHBOARD_CONFIG_FILE_NAME) + config_path = get_dashboard_config_path(DASHBOARD_CONFIG_FILE_NAME) try: # Load with data_only=True to read calculated values instead of formulas @@ -573,7 +574,7 @@ def load_inclusions_mapping_config(): def load_organizations_mapping_config(): """Loads and validates the organizations mapping configuration from the Excel file.""" global organizations_mapping_config - config_path = _dashboard_config_path_override or os.path.join(get_config_path(), DASHBOARD_CONFIG_FILE_NAME) + config_path = get_dashboard_config_path(DASHBOARD_CONFIG_FILE_NAME) try: # Load with data_only=True to read calculated values instead of formulas diff --git a/eb_dashboard_excel_export.py b/eb_dashboard_excel_export.py index b6c62a5..7db4d7e 100644 --- a/eb_dashboard_excel_export.py +++ b/eb_dashboard_excel_export.py @@ -34,7 +34,7 @@ try: except ImportError: xw = None -from eb_dashboard_utils import get_nested_value, get_config_path +from eb_dashboard_utils import get_nested_value, get_config_path, get_dashboard_config_path from eb_dashboard_constants import ( INCLUSIONS_FILE_NAME, ORGANIZATIONS_FILE_NAME, @@ -117,7 +117,7 @@ def load_excel_export_config(console_instance=None): if console_instance: console = console_instance - config_path = os.path.join(get_config_path(), DASHBOARD_CONFIG_FILE_NAME) + config_path = get_dashboard_config_path(DASHBOARD_CONFIG_FILE_NAME) error_messages = [] try: diff --git a/eb_dashboard_quality_checks.py b/eb_dashboard_quality_checks.py index c9d0b08..1941383 100644 --- a/eb_dashboard_quality_checks.py +++ b/eb_dashboard_quality_checks.py @@ -17,7 +17,7 @@ import shutil import openpyxl from rich.console import Console -from eb_dashboard_utils import get_nested_value, get_old_filename as _get_old_filename, get_config_path +from eb_dashboard_utils import get_nested_value, get_old_filename as _get_old_filename, get_config_path, get_dashboard_config_path from eb_dashboard_constants import ( INCLUSIONS_FILE_NAME, ORGANIZATIONS_FILE_NAME, @@ -93,7 +93,7 @@ def load_regression_check_config(console_instance=None): if console_instance: console = console_instance - config_path = os.path.join(get_config_path(), DASHBOARD_CONFIG_FILE_NAME) + config_path = get_dashboard_config_path(DASHBOARD_CONFIG_FILE_NAME) try: workbook = openpyxl.load_workbook(config_path) diff --git a/eb_dashboard_utils.py b/eb_dashboard_utils.py index 2aab906..5745a0e 100644 --- a/eb_dashboard_utils.py +++ b/eb_dashboard_utils.py @@ -204,6 +204,22 @@ def get_config_path(): return CONFIG_FOLDER_NAME +_dashboard_config_path_override = None + + +def set_dashboard_config_path_override(path): + """Sets a global override for the dashboard config file path (used by --config CLI arg).""" + global _dashboard_config_path_override + _dashboard_config_path_override = path + + +def get_dashboard_config_path(config_file_name): + """Returns the dashboard config file path, respecting any --config CLI override.""" + if _dashboard_config_path_override: + return _dashboard_config_path_override + return os.path.join(get_config_path(), config_file_name) + + def get_old_filename(current_filename, old_suffix="_old"): """Generate old backup filename from current filename.