114 lines
2.7 KiB
Python
114 lines
2.7 KiB
Python
"""
|
|
a interval time class
|
|
|
|
Returns:
|
|
Timer: class timer for basic time run calculations
|
|
"""
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
class Timer:
|
|
"""
|
|
get difference between start and end date/time
|
|
"""
|
|
|
|
def __init__(self):
|
|
"""
|
|
init new start time and set end time to None
|
|
"""
|
|
self._overall_start_time = datetime.now()
|
|
self._overall_end_time = None
|
|
self._overall_run_time = None
|
|
self._start_time = datetime.now()
|
|
self._end_time = None
|
|
self._run_time = None
|
|
|
|
# MARK: overall run time
|
|
def overall_run_time(self) -> timedelta:
|
|
"""
|
|
overall run time difference from class launch to call of this function
|
|
|
|
Returns:
|
|
timedelta: _description_
|
|
"""
|
|
self._overall_end_time = datetime.now()
|
|
self._overall_run_time = self._overall_end_time - self._overall_start_time
|
|
return self._overall_run_time
|
|
|
|
def get_overall_start_time(self) -> datetime:
|
|
"""
|
|
get set start time
|
|
|
|
Returns:
|
|
datetime: _description_
|
|
"""
|
|
return self._overall_start_time
|
|
|
|
def get_overall_end_time(self) -> datetime | None:
|
|
"""
|
|
get set end time or None for not set
|
|
|
|
Returns:
|
|
datetime|None: _description_
|
|
"""
|
|
return self._overall_end_time
|
|
|
|
def get_overall_run_time(self) -> timedelta | None:
|
|
"""
|
|
get run time or None if run time was not called
|
|
|
|
Returns:
|
|
datetime|None: _description_
|
|
"""
|
|
return self._overall_run_time
|
|
|
|
# MARK: set run time
|
|
def run_time(self) -> timedelta:
|
|
"""
|
|
difference between start time and current time
|
|
|
|
Returns:
|
|
datetime: _description_
|
|
"""
|
|
self._end_time = datetime.now()
|
|
self._run_time = self._end_time - self._start_time
|
|
return self._run_time
|
|
|
|
def reset_run_time(self):
|
|
"""
|
|
reset start/end and run tine
|
|
"""
|
|
self._start_time = datetime.now()
|
|
self._end_time = None
|
|
self._run_time = None
|
|
|
|
def get_start_time(self) -> datetime:
|
|
"""
|
|
get set start time
|
|
|
|
Returns:
|
|
datetime: _description_
|
|
"""
|
|
return self._start_time
|
|
|
|
def get_end_time(self) -> datetime | None:
|
|
"""
|
|
get set end time or None for not set
|
|
|
|
Returns:
|
|
datetime|None: _description_
|
|
"""
|
|
return self._end_time
|
|
|
|
def get_run_time(self) -> timedelta | None:
|
|
"""
|
|
get run time or None if run time was not called
|
|
|
|
Returns:
|
|
datetime|None: _description_
|
|
"""
|
|
return self._run_time
|
|
|
|
# __END__
|