import json import os import logging logger = logging.getLogger(__name__) DEFAULT_TIMEFRAME_OPTIONS = [ {'label': '1 Second', 'value': '1s'}, {'label': '5 Seconds', 'value': '5s'}, {'label': '15 Seconds', 'value': '15s'}, {'label': '30 Seconds', 'value': '30s'}, {'label': '1 Minute', 'value': '1m'}, {'label': '5 Minutes', 'value': '5m'}, {'label': '15 Minutes', 'value': '15m'}, {'label': '1 Hour', 'value': '1h'}, {'label': '4 Hours', 'value': '4h'}, {'label': '1 Day', 'value': '1d'}, ] def load_timeframe_options(): """Loads timeframe options from a JSON file. Returns: list: A list of dictionaries, each representing a timeframe option. """ try: # Construct path relative to the workspace root # Assuming utils is at TCPDashboard/utils # and config/options is at TCPDashboard/config/options base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) file_path = os.path.join(base_dir, 'config/options/timeframe_options.json') with open(file_path, 'r', encoding='utf-8') as f: return json.load(f) except FileNotFoundError: logger.error(f"Timeframe options file not found at {file_path}. Using default timeframes.") return DEFAULT_TIMEFRAME_OPTIONS except json.JSONDecodeError: logger.error(f"Error decoding JSON from {file_path}. Using default timeframes.") return DEFAULT_TIMEFRAME_OPTIONS except Exception as e: logger.error(f"An unexpected error occurred while loading timeframes: {e}. Using default timeframes.") return DEFAULT_TIMEFRAME_OPTIONS