# python # file: config/paths.py import os # Constant directory names DATA_DIR_NAME = 'data' TEST_DATA_DIR_NAME = 'test_data' # Project root (two levels up from this file) PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) def get_base_data_dir(data_env: str | None = None) -> str: """ Return the absolute base data directory path for the given env. data_env: 'prod' uses `data`, anything else uses `test_data`. """ env = (data_env or os.environ.get('DATA_ENV', 'prod')).lower() base_name = DATA_DIR_NAME if env == 'prod' else TEST_DATA_DIR_NAME return os.path.join(PROJECT_ROOT, base_name) def get_database_dir(db_env: str | None = None) -> str: """ Return the absolute base directory path for the given DB env. db_env: 'prod' uses `data/db`, anything else uses `test_data/db`. """ env = (db_env or os.environ.get('DB_ENV', 'prod')).lower() return os.path.join(PROJECT_ROOT, get_base_data_dir(env), 'db') def get_user_image_dir(username: str | None) -> str: """ Return the absolute directory path for storing images for a specific user. """ if username: return os.path.join(PROJECT_ROOT, get_base_data_dir(), 'images', username) return os.path.join(PROJECT_ROOT, 'resources', 'images') def get_logs_dir() -> str: """ Return the absolute directory path for application logs. """ return os.path.join(PROJECT_ROOT, 'logs')