class Timestamp: """ Class contains information about timestamp in several representation variant: - Seconds `to_sec`. - Milliseconds `to_m_sec`. - Microseconds `to_u_sec`. - Nanoseconds `to_n_sec` or `value`. """ def __init__(self, nano_secs: int): self.__value = nano_secs @property def to_sec(self) -> float: """ Returns time in seconds. """ return self.__value / (10 ** 9) @property def to_m_sec(self) -> float: """ Returns time milliseconds seconds. """ return self.__value / (10 ** 6) @property def to_u_sec(self) -> float: """ Returns time microseconds seconds. """ return self.__value / (10 ** 3) @property def to_n_sec(self) -> float: """ Returns time nanoseconds seconds. """ return self.__value @property def value(self) -> float: """ Returns time nanoseconds seconds. """ return self.__value @value.setter def value(self, value: int): """ Set time in nanoseconds seconds. """ if value <= 0: raise ValueError(f"Value of timestamp cannot be less than 0.") self.__value = value def __str__(self): return f"{self.to_u_sec} milliseconds" def __eq__(self, other): return self.__value == other.__value