source: flowtimer/flowtimer/Phase.py@ daa2276

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

better variable names and tests added

  • Property mode set to 100644
File size: 1.6 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
[99dee0f]23 self.state = "initial"
[f959488]24 self.ticks_left = ticks
[99dee0f]25
[84123db]26 def to_json(self):
[daa2276]27 return json.dumps({"title": self.title, "initial_ticks": self.initial_ticks})
[99dee0f]28
29 def __str__(self):
30 """
31 Human readable representation of all attributes
32
33 :return: human readable representation of all attributes
34 :rtype: String
35 """
36
[f959488]37 return ("-->" + self.title + "\nTicks left=" +
38 str(self.ticks_left) + "\n" + str(self.state) + "\n")
[99dee0f]39
40 def abort(self):
41 self.state = "finished"
42
43 def start(self):
44 self.state = "running"
45
[f959488]46 def reset(self):
47 self.ticks_left = self.initial_ticks
48 self.state = "initial"
49
[99dee0f]50 def pause(self):
51 self.state = "paused"
52
53 def running(self):
54 return self.state == "running"
55 # return self.time_left > 0
56
57 def finished(self):
58 return self.state == "finished"
59
60 def paused(self):
61 return self.state == "paused"
62
[f959488]63 def tick(self, ticks):
64 result = self.ticks_left - ticks
[99dee0f]65
[f959488]66 if result <= 0:
67 self.ticks_left = 0
[99dee0f]68 self.state = "finished"
[f959488]69 else:
70 self.ticks_left = result
71 return result
Note: See TracBrowser for help on using the repository browser.