From b29acb65349f3375c267f41dc2df67401bd26f05 Mon Sep 17 00:00:00 2001 From: Limitex <76650151+Limitex@users.noreply.github.com> Date: Sun, 9 Nov 2025 06:57:07 +0900 Subject: [PATCH] feat: get cheche dir paths --- src/utils/__init__.py | 3 +++ src/utils/_cache.py | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/utils/__init__.py create mode 100644 src/utils/_cache.py diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..8e67c85 --- /dev/null +++ b/src/utils/__init__.py @@ -0,0 +1,3 @@ +from ._cache import ensure_cache_dir, get_cache_path + +__all__ = ["ensure_cache_dir", "get_cache_path"] diff --git a/src/utils/_cache.py b/src/utils/_cache.py new file mode 100644 index 0000000..08cda45 --- /dev/null +++ b/src/utils/_cache.py @@ -0,0 +1,23 @@ +from pathlib import Path + +from ..config import get_cache_dir, get_project_root + + +def ensure_cache_dir() -> Path: + env_cache_str = get_cache_dir() + env_cache_path = Path(env_cache_str) + if env_cache_path.is_absolute(): + cache_dir = env_cache_path + else: + project_root = get_project_root() + cache_dir = (project_root / env_cache_path).resolve() + if not cache_dir.exists(): + cache_dir.mkdir(parents=True, exist_ok=True) + return cache_dir + + +def get_cache_path(filename: str | None = None) -> Path: + cache_dir = ensure_cache_dir() + if filename is None: + return cache_dir + return cache_dir / filename