source:
flowtimer/flowtimer/Phase.py@
a438158
| Last change on this file since a438158 was a438158, checked in by , 16 months ago | |
|---|---|
|
|
| File size: 1.9 KB | |
| Rev | Line | |
|---|---|---|
| [84123db] | 1 | import json |
| 2 | ||
| 3 | ||
| [99dee0f] | 4 | class 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 | |
| [5741f6d] | 52 | def is_sequence(self): |
| [a438158] | 53 | return False |
| [5741f6d] | 54 | |
| [99dee0f] | 55 | def abort(self): |
| [44c3377] | 56 | self._state = "finished" |
| [99dee0f] | 57 | |
| 58 | def start(self): | |
| [44c3377] | 59 | self._state = "running" |
| [99dee0f] | 60 | |
| [f959488] | 61 | def reset(self): |
| [44c3377] | 62 | self._ticks_left = self.initial_ticks |
| 63 | self._state = "initial" | |
| [f959488] | 64 | |
| [99dee0f] | 65 | def pause(self): |
| [44c3377] | 66 | self._state = "paused" |
| [99dee0f] | 67 | |
| 68 | def running(self): | |
| [44c3377] | 69 | return self._state == "running" |
| [99dee0f] | 70 | # return self.time_left > 0 |
| 71 | ||
| 72 | def finished(self): | |
| [44c3377] | 73 | return self._state == "finished" |
| [99dee0f] | 74 | |
| 75 | def paused(self): | |
| [44c3377] | 76 | return self._state == "paused" |
| [99dee0f] | 77 | |
| [f959488] | 78 | def tick(self, ticks): |
| [44c3377] | 79 | result = self._ticks_left - ticks |
| [99dee0f] | 80 | |
| [f959488] | 81 | if result <= 0: |
| [44c3377] | 82 | self._ticks_left = 0 |
| 83 | self._state = "finished" | |
| [f959488] | 84 | else: |
| [44c3377] | 85 | self._ticks_left = result |
| [f959488] | 86 | return result |
Note:
See TracBrowser
for help on using the repository browser.
![(please configure the [header_logo] section in trac.ini)](/playground/chrome/site/playground.png)