feat: Enhance get_records_directory function to support optional config_manager for dynamic path retrieval
This commit is contained in:
parent
01489aec59
commit
29b6e92284
38
main.py
38
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": []})
|
||||
|
||||
|
|
Loading…
Reference in New Issue