From 88d5d7858335ef0b472537c71007fe99ef08027d Mon Sep 17 00:00:00 2001 From: edraft Date: Sun, 19 Oct 2025 20:08:31 +0200 Subject: [PATCH] Updated cpl structure model json handling --- src/cli/cpl/cli/model/cpl_structure_model.py | 14 +++++++------- src/cli/cpl/cli/model/workspace.py | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/cli/cpl/cli/model/cpl_structure_model.py b/src/cli/cpl/cli/model/cpl_structure_model.py index 3d9434c1..78209cca 100644 --- a/src/cli/cpl/cli/model/cpl_structure_model.py +++ b/src/cli/cpl/cli/model/cpl_structure_model.py @@ -12,11 +12,11 @@ T = TypeVar("T", bound="CPLStructureModel") class CPLStructureModel: def __init__(self, path: Optional[str] = None): - self._path = path + self.__path = path @property def path(self) -> Optional[str]: - return self._path + return self.__path @classmethod def from_file(cls: Type[T], path: Path | str) -> T: @@ -68,7 +68,7 @@ class CPLStructureModel: def to_json(self) -> Dict[str, Any]: result: Dict[str, Any] = {} for key, value in self.__dict__.items(): - if not key.startswith("_") or key == "_path": + if not key.startswith("_") or key.startswith("__") or key.endswith("_"): continue out_key = _self_or_cls_snake_to_camel(key[1:]) @@ -79,13 +79,13 @@ class CPLStructureModel: return result def save(self): - if not self._path: + if not self.__path: raise ValueError("Cannot save model without a path.") - if not Path(self._path).exists(): - os.makedirs(Path(self._path).parent, exist_ok=True) + if not Path(self.__path).exists(): + os.makedirs(Path(self.__path).parent, exist_ok=True) - with open(self._path, "w", encoding="utf-8") as f: + with open(self.__path, "w", encoding="utf-8") as f: json.dump(self.to_json(), f, indent=2) @staticmethod diff --git a/src/cli/cpl/cli/model/workspace.py b/src/cli/cpl/cli/model/workspace.py index b991190c..21f0e7b2 100644 --- a/src/cli/cpl/cli/model/workspace.py +++ b/src/cli/cpl/cli/model/workspace.py @@ -30,17 +30,17 @@ class Workspace(CPLStructureModel): self._projects = projects self._default_project = default_project - self._actual_projects = [] - self._project_names = [] + self.__actual_projects = [] + self.__project_names = [] for project in projects: if Path(project).is_dir() or not Path(project).exists(): raise ValueError(f"Project path '{project}' does not exist or is a directory.") p = Project.from_file(project) - self._actual_projects.append(p) - self._project_names.append(p.name) + self.__actual_projects.append(p) + self.__project_names.append(p.name) - if default_project is not None and default_project not in self._project_names: + if default_project is not None and default_project not in self.__project_names: raise ValueError(f"Default project '{default_project}' not found in workspace projects.") self._scripts = scripts @@ -63,11 +63,11 @@ class Workspace(CPLStructureModel): @property def actual_projects(self) -> List[Project]: - return self._actual_projects + return self.__actual_projects @property def project_names(self) -> List[str]: - return self._project_names + return self.__project_names @property def default_project(self) -> Optional[str]: