ParamManagerScripts/backend/script_utils.py

48 lines
1.5 KiB
Python

import os
import json
import inspect
from typing import Dict, Any
def load_configuration() -> Dict[str, Any]:
"""
Load configuration from script_config.json in the current script directory.
Returns:
Dict containing configurations with levels 1, 2, 3 and working_directory
Example usage in scripts:
from script_utils import load_configuration
configs = load_configuration()
level1_config = configs.get("level1", {})
level2_config = configs.get("level2", {})
level3_config = configs.get("level3", {})
working_dir = configs.get("working_directory", "")
"""
try:
# Obtener el frame del llamador
caller_frame = inspect.stack()[1]
caller_file = caller_frame.filename
# Obtener el directorio del script que llama a esta función
script_dir = os.path.dirname(os.path.abspath(caller_file))
# Path to the config file
config_file_path = os.path.join(script_dir, "script_config.json")
# Check if file exists
if not os.path.exists(config_file_path):
print(f"Configuration file not found: {config_file_path}")
return {}
# Load and parse the JSON file
with open(config_file_path, "r", encoding="utf-8") as f:
return json.load(f)
except json.JSONDecodeError as e:
print(f"Error parsing configuration file: {str(e)}")
return {}
except Exception as e:
print(f"Error loading configuration: {str(e)}")
return {}