source:
flowtimer/flowtimer/Phase.py@
44c3377
Last change on this file since 44c3377 was 44c3377, checked in by , 9 months ago | |
---|---|
|
|
File size: 1.8 KB |
Rev | Line | |
---|---|---|
[84123db] | 1 | import json |
2 | ||
3 | ||
[99dee0f] | 4 | class Phase: |
5 | ||
6 | """ | |
7 | This class is a representation of a single phase inside a timer | |
8 | """ | |
9 | ||
[f959488] | 10 | def __init__(self, title, ticks): |
[99dee0f] | 11 | """ |
12 | creates the variables associated with that class | |
13 | ||
14 | :type title: string | |
15 | :param title: Name of phase | |
16 | ||
[f959488] | 17 | :type ticks: int |
18 | :param ticks: ticks in seconds | |
[99dee0f] | 19 | """ |
20 | ||
21 | self.title = title | |
[f959488] | 22 | self.initial_ticks = ticks |
[44c3377] | 23 | self._state = "initial" |
24 | self._ticks_left = ticks | |
25 | ||
26 | @property | |
27 | def initial_repetitions(self): | |
28 | return 1 | |
29 | ||
30 | @property | |
31 | def state(self): | |
32 | return self._state | |
33 | ||
34 | @property | |
35 | def ticks_left(self): | |
36 | return self._ticks_left | |
[99dee0f] | 37 | |
[84123db] | 38 | def to_json(self): |
[daa2276] | 39 | return json.dumps({"title": self.title, "initial_ticks": self.initial_ticks}) |
[99dee0f] | 40 | |
41 | def __str__(self): | |
42 | """ | |
43 | Human readable representation of all attributes | |
44 | ||
45 | :return: human readable representation of all attributes | |
46 | :rtype: String | |
47 | """ | |
48 | ||
[f959488] | 49 | return ("-->" + self.title + "\nTicks left=" + |
[44c3377] | 50 | str(self._ticks_left) + "\n" + str(self._state) + "\n") |
[99dee0f] | 51 | |
52 | def abort(self): | |
[44c3377] | 53 | self._state = "finished" |
[99dee0f] | 54 | |
55 | def start(self): | |
[44c3377] | 56 | self._state = "running" |
[99dee0f] | 57 | |
[f959488] | 58 | def reset(self): |
[44c3377] | 59 | self._ticks_left = self.initial_ticks |
60 | self._state = "initial" | |
[f959488] | 61 | |
[99dee0f] | 62 | def pause(self): |
[44c3377] | 63 | self._state = "paused" |
[99dee0f] | 64 | |
65 | def running(self): | |
[44c3377] | 66 | return self._state == "running" |
[99dee0f] | 67 | # return self.time_left > 0 |
68 | ||
69 | def finished(self): | |
[44c3377] | 70 | return self._state == "finished" |
[99dee0f] | 71 | |
72 | def paused(self): | |
[44c3377] | 73 | return self._state == "paused" |
[99dee0f] | 74 | |
[f959488] | 75 | def tick(self, ticks): |
[44c3377] | 76 | result = self._ticks_left - ticks |
[99dee0f] | 77 | |
[f959488] | 78 | if result <= 0: |
[44c3377] | 79 | self._ticks_left = 0 |
80 | self._state = "finished" | |
[f959488] | 81 | else: |
[44c3377] | 82 | self._ticks_left = result |
[f959488] | 83 | return result |
Note:
See TracBrowser
for help on using the repository browser.