source: flowtimer/flowtimer/Phase.py@ 0384305

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

more refactorings

Signed-off-by: Enrico Schwass <ennoausberlin@…>

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[84123db]1import json
2
3
[99dee0f]4class 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
[d7a66ad]49 return ("Title:" + self.title + "\nTicks left=" +
[44c3377]50 str(self._ticks_left) + "\n" + str(self._state) + "\n")
[99dee0f]51
[5741f6d]52 def is_sequence(self):
[a438158]53 return False
[5741f6d]54
[99dee0f]55 def abort(self):
[d7a66ad]56 self._state = "aborted"
57
58 def aborted(self):
59 return self.state == "aborted"
[99dee0f]60
61 def start(self):
[44c3377]62 self._state = "running"
[99dee0f]63
[f959488]64 def reset(self):
[44c3377]65 self._ticks_left = self.initial_ticks
66 self._state = "initial"
[f959488]67
[99dee0f]68 def pause(self):
[44c3377]69 self._state = "paused"
[99dee0f]70
71 def running(self):
[44c3377]72 return self._state == "running"
[99dee0f]73 # return self.time_left > 0
74
[d7a66ad]75 def completed(self):
76 return self._state == "completed"
[99dee0f]77
78 def paused(self):
[44c3377]79 return self._state == "paused"
[99dee0f]80
[f959488]81 def tick(self, ticks):
[44c3377]82 result = self._ticks_left - ticks
[99dee0f]83
[f959488]84 if result <= 0:
[44c3377]85 self._ticks_left = 0
[d7a66ad]86 self._state = "completed"
[f959488]87 else:
[44c3377]88 self._ticks_left = result
[f959488]89 return result
Note: See TracBrowser for help on using the repository browser.