File size: 1,087 Bytes
e82864c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# src/app/config.py
from pathlib import Path
def get_project_root() -> Path:
"""
Returns the project root directory.
Assumes this file is located at:
<project_root>/src/app/config.py
so we go up two parents.
"""
return Path(__file__).resolve().parents[2]
def get_data_dir() -> Path:
"""
Root data directory for all persisted user content.
"""
root = get_project_root()
data_dir = root / "data"
data_dir.mkdir(parents=True, exist_ok=True)
return data_dir
def get_user_dir(username: str) -> Path:
"""
Returns the directory for a given user and ensures that
its subfolders exist.
"""
data_dir = get_data_dir()
user_dir = data_dir / "users" / username
user_dir.mkdir(parents=True, exist_ok=True)
# create standard subfolders
(user_dir / "decks").mkdir(parents=True, exist_ok=True)
(user_dir / "viewers").mkdir(parents=True, exist_ok=True)
(user_dir / "chats").mkdir(parents=True, exist_ok=True)
(user_dir / "quizzes").mkdir(parents=True, exist_ok=True)
return user_dir
|