All checks were successful
Gitea Actions Demo / build-and-push (push) Successful in 11s
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# 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')
|