Moved supression for keyboard interrupt to display

This commit is contained in:
rfeistenauer 2020-10-20 14:40:17 +02:00
parent edd1211692
commit 1ed82116ce
4 changed files with 15 additions and 17 deletions

View File

@ -19,6 +19,7 @@ limitations under the License.
import time
import operator
import collections
import contextlib
from typing import Sequence
from . import CellularAutomaton
@ -94,16 +95,17 @@ class CAWindow:
:param last_evolution_step: 0 = infinite | > 0 evolution step at which this method will stop
Warning: is blocking until finished
"""
while self._is_not_user_terminated() and self._not_at_the_end(last_evolution_step):
time_ca_start = time.time()
self._cellular_automaton.evolve(evolutions_per_draw)
time_ca_end = time.time()
self._redraw_dirty_cells()
time_ds_end = time.time()
self.print_process_info(evolve_duration=(time_ca_end - time_ca_start),
draw_duration=(time_ds_end - time_ca_end),
evolution_step=self._cellular_automaton.evolution_step)
self._sleep_to_keep_rate(time.time() - time_ca_start, evolutions_per_second)
with contextlib.suppress(KeyboardInterrupt):
while self._is_not_user_terminated() and self._not_at_the_end(last_evolution_step):
time_ca_start = time.time()
self._cellular_automaton.evolve(evolutions_per_draw)
time_ca_end = time.time()
self._redraw_dirty_cells()
time_ds_end = time.time()
self.print_process_info(evolve_duration=(time_ca_end - time_ca_start),
draw_duration=(time_ds_end - time_ca_end),
evolution_step=self._cellular_automaton.evolution_step)
self._sleep_to_keep_rate(time.time() - time_ca_start, evolutions_per_second)
def _sleep_to_keep_rate(self, time_taken, evolutions_per_second): # pragma: no cover
if evolutions_per_second > 0:

View File

@ -19,7 +19,6 @@ limitations under the License.
# pylint: disable=missing-function-docstring
import random
import contextlib
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
@ -65,5 +64,4 @@ class ConwaysCA(CellularAutomaton):
if __name__ == "__main__":
with contextlib.suppress(KeyboardInterrupt):
CAWindow(cellular_automaton=ConwaysCA()).run(evolutions_per_second=40)
CAWindow(cellular_automaton=ConwaysCA()).run(evolutions_per_second=40)

View File

@ -20,7 +20,6 @@ limitations under the License.
# pylint: disable=no-self-use
import random
import contextlib
import sys
import os
from typing import Sequence
@ -53,5 +52,4 @@ def state_to_color(current_state: Sequence) -> Sequence:
if __name__ == "__main__":
with contextlib.suppress(KeyboardInterrupt):
CAWindow(cellular_automaton=StarFallAutomaton(), state_to_color_cb=state_to_color).run()
CAWindow(cellular_automaton=StarFallAutomaton(), state_to_color_cb=state_to_color).run()

View File

@ -7,7 +7,7 @@ with open('README.md') as f:
setup(
name="cellular_automaton",
version="1.0.0",
version="1.0.1",
author="Richard Feistenauer",
author_email="r.feistenauer@web.de",
packages=find_packages(exclude=('tests', 'docs', 'examples')),