diff options
Diffstat (limited to 'tools/cru-py/cru/paths.py')
| -rw-r--r-- | tools/cru-py/cru/paths.py | 64 | 
1 files changed, 0 insertions, 64 deletions
diff --git a/tools/cru-py/cru/paths.py b/tools/cru-py/cru/paths.py deleted file mode 100644 index cdd97fe..0000000 --- a/tools/cru-py/cru/paths.py +++ /dev/null @@ -1,64 +0,0 @@ -import os -from pathlib import Path - -from .error import CruException - - -class ApplicationPathError(CruException): -    def __init__(self, message: str, p: str | Path, *args, **kwargs): -        super().__init__(message, *args, path=str(p), **kwargs) - - -def check_parents_dir(p: str | Path, /, must_exist: bool = False) -> bool: -    p = Path(p) if isinstance(p, str) else p -    for p in reversed(p.parents): -        if not p.exists() and not must_exist: -            return False -        if not p.is_dir(): -            raise ApplicationPathError("Parents path should be a dir.", p) -    return True - - -class ApplicationPath: -    def __init__(self, p: str | Path, is_dir: bool) -> None: -        self._path = Path(p) if isinstance(p, str) else p -        self._is_dir = is_dir - -    @property -    def path(self) -> Path: -        return self._path - -    @property -    def is_dir(self) -> bool: -        return self._is_dir - -    def check_parents(self, must_exist: bool = False) -> bool: -        return check_parents_dir(self._path.parent, must_exist) - -    def check_self(self, must_exist: bool = False) -> bool: -        if not self.check_parents(must_exist): -            return False -        if not self.path.exists(): -            if not must_exist: -                return False -            raise ApplicationPathError("Mot exist.", self.path) -        if self.is_dir: -            if not self.path.is_dir(): -                raise ApplicationPathError("Should be a directory, but not.", self.path) -            else: -                return False -        else: -            if not self.path.is_file(): -                raise ApplicationPathError("Should be a file, but not.", self.path) -            else: -                return False - -    def ensure(self, create_file: bool = False) -> None: -        e = self.check_self(False) -        if not e: -            os.makedirs(self.path.parent, exist_ok=True) -            if self.is_dir: -                os.mkdir(self.path) -            elif create_file: -                with open(self.path, "w") as f: -                    f.write("")  | 
