From c9085d5e60c3bcad21166acf05b8d847dfcbdbf6 Mon Sep 17 00:00:00 2001 From: Thomas S Date: Tue, 28 Jan 2025 14:51:09 +0100 Subject: [PATCH] [skip ci] clean constructor parameters --- skore/src/skore/project/project.py | 57 ++++++++++++++++-------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/skore/src/skore/project/project.py b/skore/src/skore/project/project.py index c08764b4b..0ae6c8fb4 100644 --- a/skore/src/skore/project/project.py +++ b/skore/src/skore/project/project.py @@ -18,13 +18,15 @@ logger.setLevel(INFO) -def open( - path: Optional[Union[str, Path]] = "project.skore", - *, - create: bool = True, - overwrite: bool = False, -) -> Project: - return Project(path, create=create, overwrite=overwrite) +def open(path: Optional[Union[str, Path]] = "project.skore"): + path = Path(path) + path = path.with_suffix(".skore") + path = path.resolve() + + if not path.exists(): + raise FileNotFoundError + + return Project(path, exist_ok=True) class Project: @@ -45,36 +47,39 @@ def __init__( self, path: Optional[Union[str, Path]] = "project.skore", *, - create: bool = True, - overwrite: bool = False, + exist_ok: bool = False, ): self.path = Path(path) self.path = self.path.with_suffix(".skore") self.path = self.path.resolve() - if not create: - if not self.path.exists(): - raise FileNotFoundError + if not exist_ok and self.path.exists(): + raise FileExistsError - if not self.path.is_dir(): - raise ValueError + self.__item_storage_dirpath = self.path / "items" + self.__view_storage_dirpath = self.path / "views" - item_storage_dirname = self.path / "items" - view_storage_dirname = self.path / "views" + # Create diskcache directories + self.__item_storage_dirpath.mkdir(parents=True, exist_ok=True) + self.__view_storage_dirpath.mkdir(parents=True, exist_ok=True) - if overwrite: - rmtree(item_storage_dirname, ignore_errors=True) - rmtree(view_storage_dirname, ignore_errors=True) + # Initialize repositories with dedicated storages + self.item_repository = ItemRepository( + DiskCacheStorage(self.__item_storage_dirpath) + ) + self.view_repository = ViewRepository( + DiskCacheStorage(self.__view_storage_dirpath) + ) - if create or overwrite: - item_storage_dirname.mkdir(parents=True, exist_ok=True) - view_storage_dirname.mkdir(parents=True, exist_ok=True) + # Ensure default view is available + if "default" not in self.view_repository: + self.view_repository.put_view("default", View(layout=[])) - self.item_repository = ItemRepository(DiskCacheStorage(item_storage_dirname)) - self.view_repository = ViewRepository(DiskCacheStorage(view_storage_dirname)) + def clear(self): + rmtree(self.__item_storage_dirpath, ignore_errors=True) + rmtree(self.__view_storage_dirpath, ignore_errors=True) - if (create or overwrite) and ("default" not in self.view_repository): - self.view_repository.put_view("default", View(layout=[])) + self.__init__(self.path, exist_ok=False) def put( self,