Spaces:
Running
Running
| import os | |
| from functools import lru_cache | |
| from pathlib import Path | |
| def project_root() -> Path: | |
| """ | |
| Return the repository root so callers can build absolute paths that do not | |
| depend on the current working directory. | |
| """ | |
| env_root = os.getenv("CAMOUFOX_PROJECT_ROOT") | |
| if env_root: | |
| return Path(env_root).expanduser().resolve() | |
| current = Path(__file__).resolve() | |
| for parent in current.parents: | |
| if (parent / "cookies").exists(): | |
| return parent | |
| # Fallback to the original behaviour if the marker directory is missing. | |
| return current.parents[min(2, len(current.parents) - 1)] | |
| def logs_dir() -> Path: | |
| """Root-level directory that stores log files and screenshots.""" | |
| return project_root() / "logs" | |
| def cookies_dir() -> Path: | |
| """Root-level directory that stores persistent cookie JSON files.""" | |
| return project_root() / "cookies" | |