Spaces:
Running
Running
# -*- coding: utf-8 -*- | |
"""ユーティリティ""" | |
import time | |
def get_package_version() -> str: | |
""" | |
バージョン情報 | |
""" | |
return '0.0.7' | |
class Stopwatch: | |
""" | |
経過時間を計測するためのクラス。 | |
Example: | |
from src.utils import Stopwatch | |
watch = Stopwatch.start_new() | |
### 計測する処理 | |
print(f"{watch.elapsed:.3f}") | |
""" | |
def __init__(self): | |
self._start_time: float = 0 | |
self._elapsed: float = 0 | |
self._is_running: bool = False | |
def elapsed(self) -> float: | |
""" | |
経過時間を取得します。 | |
""" | |
if self._is_running: | |
end_time = time.perf_counter() | |
self._elapsed = end_time - self._start_time | |
return self._elapsed | |
def start(self) -> None: | |
""" | |
計測を開始します。 | |
""" | |
self._start_time = time.perf_counter() | |
self._elapsed = 0 | |
self._is_running = True | |
def start_new(cls): | |
""" | |
ストップウォッチを生成し計測を開始します。 | |
""" | |
stopwatch = Stopwatch() | |
stopwatch.start() | |
return stopwatch | |
def stop(self) -> float: | |
""" | |
計測を終了します。 | |
""" | |
if self._is_running: | |
end_time = time.perf_counter() | |
self._elapsed = end_time - self._start_time | |
self._is_running = False | |
return self._elapsed | |
def is_running(self) -> bool: | |
""" | |
実行中かどうかを取得します。 | |
""" | |
return self._is_running | |