diff --git a/src/citrine/__version__.py b/src/citrine/__version__.py index 98ebc9dc1..c4b4b2a36 100644 --- a/src/citrine/__version__.py +++ b/src/citrine/__version__.py @@ -1 +1 @@ -__version__ = "3.11.3" +__version__ = "3.11.4" diff --git a/src/citrine/resources/project.py b/src/citrine/resources/project.py index a39b750f2..08108aa33 100644 --- a/src/citrine/resources/project.py +++ b/src/citrine/resources/project.py @@ -12,6 +12,7 @@ from citrine._serialization import properties from citrine._session import Session from citrine._utils.functions import format_escaped_url +from citrine.exceptions import NonRetryableException, ModuleRegistrationFailedException from citrine.resources.api_error import ApiError from citrine.resources.branch import BranchCollection from citrine.resources.dataset import DatasetCollection @@ -591,7 +592,12 @@ def register(self, name: str, *, description: Optional[str] = None) -> Project: "Use team.projects.register.") project = Project(name, description=description) - return super().register(project) + try: + data = self.session.post_resource(self._get_path(), project.dump()) + data = data[self._individual_key] + return self.build(data) + except NonRetryableException as e: + raise ModuleRegistrationFailedException(project.__class__.__name__, e) def list(self, *, per_page: int = 1000) -> Iterator[Project]: """ @@ -735,7 +741,7 @@ def delete(self, uid: Union[UUID, str]) -> Response: If the project is not empty, then the Response will contain a list of all of the project's resources. These must be deleted before the project can be deleted. """ - # Only the team-agnostic project delete is implemented + # Only the team-agnostic project get is implemented if self.team_id is None: return super().delete(uid) else: