Coverage for src/blob_dict/path.py: 0%
28 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-03-18 23:10 -0700
« prev ^ index » next coverage.py v7.7.0, created at 2025-03-18 23:10 -0700
1from __future__ import annotations
3import shutil
4from pathlib import Path
5from typing import TYPE_CHECKING, override
7from cloudpathlib import S3Path
9from .blob import Blob
10from .common import BaseBlobDict
12if TYPE_CHECKING:
13 from .blob import Blob
16class PathBlobDict(BaseBlobDict):
17 def __init__(self, path: Path | S3Path) -> None:
18 super().__init__()
20 self.path: Path | S3Path = path
22 @override
23 def create(self) -> None:
24 self.path.mkdir(
25 parents=True,
26 exist_ok=True,
27 )
29 @override
30 def delete(self) -> None:
31 if isinstance(self.path, Path):
32 shutil.rmtree(self.path)
33 return
35 self.path.rmtree()
37 @override
38 def clear(self) -> None:
39 raise NotImplementedError
41 @override
42 def __getitem__(self, key: str) -> Blob:
43 raise NotImplementedError