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

1from __future__ import annotations 

2 

3import shutil 

4from pathlib import Path 

5from typing import TYPE_CHECKING, override 

6 

7from cloudpathlib import S3Path 

8 

9from .blob import Blob 

10from .common import BaseBlobDict 

11 

12if TYPE_CHECKING: 

13 from .blob import Blob 

14 

15 

16class PathBlobDict(BaseBlobDict): 

17 def __init__(self, path: Path | S3Path) -> None: 

18 super().__init__() 

19 

20 self.path: Path | S3Path = path 

21 

22 @override 

23 def create(self) -> None: 

24 self.path.mkdir( 

25 parents=True, 

26 exist_ok=True, 

27 ) 

28 

29 @override 

30 def delete(self) -> None: 

31 if isinstance(self.path, Path): 

32 shutil.rmtree(self.path) 

33 return 

34 

35 self.path.rmtree() 

36 

37 @override 

38 def clear(self) -> None: 

39 raise NotImplementedError 

40 

41 @override 

42 def __getitem__(self, key: str) -> Blob: 

43 raise NotImplementedError