source: flowtimer/flowtimer/Phase.py@ 813e855

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

predicates renamed

  • Property mode set to 100644
File size: 2.0 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 ("Title:" + self.title + "\nTicks left=" +
50 str(self._ticks_left) + "\n" + str(self._state) + "\n")
51
52 def is_sequence(self):
53 return False
54
55 def abort(self):
56 self._state = "aborted"
57
58 def is_aborted(self):
59 return self.state == "aborted"
60
61 def start(self):
62 self._state = "running"
63
64 def reset(self):
65 self._ticks_left = self.initial_ticks
66 self._state = "initial"
67
68 def pause(self):
69 self._state = "paused"
70
71 def is_running(self):
72 return self._state == "running"
73 # return self.time_left > 0
74
75 def is_terminated(self):
76 return (self.is_completed() or self.is_aborted())
77
78 def is_completed(self):
79 return self.ticks_left < 1
80
81 def is_paused(self):
82 return self._state == "paused"
83
84 def tick(self, ticks):
85 result = self._ticks_left - ticks
86
87 if result <= 0:
88 self._ticks_left = 0
89 self._state = "completed"
90 else:
91 self._ticks_left = result
92 return result
Note: See TracBrowser for help on using the repository browser.