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
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
[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.