Spaces:
Running
Running
# -*- coding: utf-8 -*- | |
"""ใฆใผใใฃใชใใฃ""" | |
from dataclasses import dataclass | |
import time | |
def get_package_version() -> str: | |
""" | |
ใใผใธใงใณๆ ๅ ฑใๅๅพใใพใใ | |
""" | |
return '0.0.13' | |
class Stopwatch: | |
""" | |
็ต้ๆ้ใ่จๆธฌใใใใใฎใฏใฉในใ | |
Example: | |
from src.utils import Stopwatch | |
watch = Stopwatch.start_new() | |
### ่จๆธฌใใๅฆ็ | |
print(f"{watch.elapsed:.3f}") | |
""" | |
_start_time: float = 0 | |
_elapsed: float = 0 | |
_is_running: bool = False | |
def elapsed(self) -> float: | |
""" | |
่จๆธฌไธญใฎ็ต้ๆ้ใๅๅพใใพใใ | |
Returns: | |
float: ่จๆธฌไธญใฎ็ต้ๆ้(ๅฐๆฐ็ง) | |
""" | |
if self._is_running: | |
self._elapsed = time.perf_counter() - self._start_time | |
return self._elapsed | |
def is_running(self) -> bool: | |
""" | |
่จๆธฌใๅฎ่กไธญใงใใใใฉใใใๅๅพใใพใ | |
""" | |
return self._is_running | |
def start(self) -> None: | |
""" | |
่จๆธฌใ้ๅงใใพใใ | |
""" | |
self._start_time = time.perf_counter() | |
self._elapsed = 0 | |
self._is_running = True | |
def start_new(cls) -> 'Stopwatch': | |
""" | |
ๆฐใใในใใใใฆใฉใใใ็ๆใใ่จๆธฌใ้ๅงใใพใใ | |
Returns: | |
Stopwatch: ๆฐใใในใใใใฆใฉใใใชใใธใงใฏใ | |
""" | |
stopwatch = Stopwatch() | |
stopwatch.start() | |
return stopwatch | |
def stop(self) -> float: | |
""" | |
่จๆธฌใ็ตไบใใ็ต้ๆ้ใ่ฟใใพใใ | |
Returns: | |
float: ่จๆธฌไธญใฎ็ต้ๆ้ | |
""" | |
if self._is_running: | |
self._elapsed = time.perf_counter() - self._start_time | |
self._is_running = False | |
return self._elapsed | |