source: flowtimer/flowtimer/Phase.py@ 44c3377

guix
Last change on this file since 44c3377 was 44c3377, checked in by Enrico Schwass <ennoausberlin@…>, 9 months ago

initial_repetitions method added to Phase

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import json
2
3
4class Phase:
5
6 """
7 This class is a representation of a single phase inside a timer
8 """
9
10 def __init__(self, title, ticks):
11 """
12 creates the variables associated with that class
13
14 :type title: string
15 :param title: Name of phase
16
17 :type ticks: int
18 :param ticks: ticks in seconds
19 """
20
21 self.title = title
22 self.initial_ticks = ticks
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
37
38 def to_json(self):
39 return json.dumps({"title": self.title, "initial_ticks": self.initial_ticks})
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
49 return ("-->" + self.title + "\nTicks left=" +
50 str(self._ticks_left) + "\n" + str(self._state) + "\n")
51
52 def abort(self):
53 self._state = "finished"
54
55 def start(self):
56 self._state = "running"
57
58 def reset(self):
59 self._ticks_left = self.initial_ticks
60 self._state = "initial"
61
62 def pause(self):
63 self._state = "paused"
64
65 def running(self):
66 return self._state == "running"
67 # return self.time_left > 0
68
69 def finished(self):
70 return self._state == "finished"
71
72 def paused(self):
73 return self._state == "paused"
74
75 def tick(self, ticks):
76 result = self._ticks_left - ticks
77
78 if result <= 0:
79 self._ticks_left = 0
80 self._state = "finished"
81 else:
82 self._ticks_left = result
83 return result
Note: See TracBrowser for help on using the repository browser.