Spaces:
Running
Running
| # -*- coding: utf-8 -*- | |
| """ใฆใผใใฃใชใใฃ""" | |
| from dataclasses import dataclass | |
| import time | |
| def get_package_version() -> str: | |
| """ | |
| ใใผใธใงใณๆ ๅ ฑใๅๅพใใพใใ | |
| """ | |
| return '1.0.0' | |
| 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 | |