diff --git a/main.py b/main.py index acbd5e5..109bc65 100644 --- a/main.py +++ b/main.py @@ -160,15 +160,25 @@ def project_path(*parts: str) -> str: return os.path.join(base_dir, *parts) -def get_records_directory(): - """Get the correct records directory path for both development and PyInstaller exe""" - if getattr(sys, "frozen", False): - # Running as PyInstaller executable - records should be next to the exe - executable_dir = os.path.dirname(sys.executable) - return os.path.join(executable_dir, "records") +def get_records_directory(config_manager=None): + """Get the correct records directory path for dev and PyInstaller exe + + Args: + config_manager: Optional ConfigManager instance to read records_directory + from config. If not provided, defaults to 'records' subdir + """ + if config_manager: + # Use configured records directory (can be relative or absolute) + return config_manager.get_csv_directory_path() else: - # Running as script - use current directory - return os.path.join(os.path.dirname(__file__), "records") + # Fallback behavior for when config_manager is not available + if getattr(sys, "frozen", False): + # Running as PyInstaller executable - records should be next to the exe + executable_dir = os.path.dirname(sys.executable) + return os.path.join(executable_dir, "records") + else: + # Running as script - use current directory + return os.path.join(os.path.dirname(__file__), "records") # React build directory (for Vite production build) @@ -2096,7 +2106,8 @@ def get_historical_data(): return jsonify({"error": f"Time calculation failed: {str(e)}"}), 500 # Get relevant CSV files for cache checking - records_dir = get_records_directory() + config_mgr = streamer.config_manager if streamer else None + records_dir = get_records_directory(config_mgr) csv_files = [] if os.path.exists(records_dir): @@ -2438,7 +2449,8 @@ def get_historical_date_range(): import glob # Get records directory - records_dir = get_records_directory() + config_mgr = streamer.config_manager if streamer else None + records_dir = get_records_directory(config_mgr) if not os.path.exists(records_dir): return ( @@ -2573,7 +2585,8 @@ def get_historical_data_segments(): try: import glob - records_dir = get_records_directory() + config_mgr = streamer.config_manager if streamer else None + records_dir = get_records_directory(config_mgr) if not os.path.exists(records_dir): return ( @@ -3826,7 +3839,8 @@ def process_symbol_variables(): def get_csv_files(): """Get structured list of CSV files organized by dataset, date, and hour""" try: - records_dir = get_records_directory() + config_mgr = streamer.config_manager if streamer else None + records_dir = get_records_directory(config_mgr) if not os.path.exists(records_dir): return jsonify({"files": [], "tree": []})