65 lines
1.4 KiB
Python
65 lines
1.4 KiB
Python
|
|
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
|