File size: 1,257 Bytes
1bf41f9
8ccf878
1bf41f9
 
8ccf878
1bf41f9
8ccf878
 
 
f65b63f
1bf41f9
8ccf878
1bf41f9
 
 
271d94c
8ccf878
 
 
271d94c
 
1bf41f9
 
 
8ccf878
 
1bf41f9
 
8ccf878
 
 
 
1bf41f9
 
 
8ccf878
 
 
1bf41f9
8ccf878
1bf41f9
 
8ccf878
 
 
 
1bf41f9
 
 
 
 
8ccf878
 
 
1bf41f9
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# -*- coding: utf-8 -*-
"""ใƒฆใƒผใƒ†ใ‚ฃใƒชใƒ†ใ‚ฃ"""
import time


def get_package_version() -> str:
    """

    ใƒใƒผใ‚ธใƒงใƒณๆƒ…ๅ ฑ

    """
    return '0.0.5'


class Stopwatch:
    """

    Stopwatch ็ตŒ้Žๆ™‚้–“ใ‚’่จˆๆธฌใ™ใ‚‹ใŸใ‚ใฎใ‚ฏใƒฉใ‚นใงใ™ใ€‚

    Example:

        from src.utils import Stopwatch



        watch = Stopwatch.start_new()

        # ่จˆๆธฌใ™ใ‚‹ๅ‡ฆ็†

        print(f"{watch.stop():.3f}")

    """

    def __init__(self):
        self._start_time = 0
        self._elapsed = 0

    @property
    def elapsed(self):
        """

        ็ตŒ้Žๆ™‚้–“

        """
        return self._elapsed

    def start(self) -> None:
        """

        ่จˆๆธฌใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚

        """
        self._start_time = time.perf_counter()
        self._elapsed = 0

    @classmethod
    def start_new(cls):
        """

        ใ‚นใƒˆใƒƒใƒ—ใ‚ฆใ‚ฉใƒƒใƒใ‚’็”Ÿๆˆใ—่จˆๆธฌใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚

        """
        stopwatch = Stopwatch()
        stopwatch.start()
        return stopwatch

    def stop(self):
        """

        ่จˆๆธฌใ‚’็ต‚ไบ†ใ—ใพใ™ใ€‚

        """
        end_time = time.perf_counter()
        self._elapsed = end_time - self._start_time
        return self._elapsed