Source code for baec.project

from __future__ import annotations


[docs]class Project: """ Represents a project. """
[docs] def __init__( self, id_: str, name: str, ) -> None: """ Initializes a MeasurementDevice object. Parameters ---------- id_ : str The ID of the project. name : str The name of the project. Raises ------ TypeError If the input types are incorrect. ValueError If empty string for `id_` or `name`. """ # Initialize all attributes using private setters. self._set_id(id_) self._set_name(name)
def _set_id(self, value: str) -> None: """ Private setter for id attribute. """ if not isinstance(value, str): raise TypeError("Expected 'str' type for 'id' attribute.") if value == "": raise ValueError("Empty string not allowed for 'id' attribute.") self._id = value def _set_name(self, value: str) -> None: """ Private setter for name attribute. """ if not isinstance(value, str): raise TypeError("Expected 'str' type for 'name' attribute.") if value == "": raise ValueError("Empty string not allowed for 'name' attribute.") self._name = value @property def id(self) -> str: """ The ID of the project. """ return self._id @property def name(self) -> str: """ The name of the project. """ return self._name def __eq__(self, other: object) -> bool: """ Check if two MeasurementDevice objects are equal. It compares the `id` attribute and `name` attribute. Parameters ---------- other : object The object to compare. Returns ------- bool True if the objects are equal, False otherwise. """ if not isinstance(other, Project): return False return self.id == other.id and self.name == other.name