projects
/
kiosk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Towards mypy cleanliness.
[kiosk.git]
/
renderer.py
diff --git
a/renderer.py
b/renderer.py
index 2be7780c1c85ec02808abea8eb55fbd00fdbea57..5f80e045ed886784a5b17579c70a69f009ed3baf 100644
(file)
--- a/
renderer.py
+++ b/
renderer.py
@@
-1,29
+1,34
@@
-import time
+#!/usr/bin/env python3
+
+from abc import ABC, abstractmethod
from datetime import datetime
from datetime import datetime
-from decorators import invokation_logged
+from decorators import invocation_logged
+import time
+from typing import Dict, List, Optional, Set
-class renderer(
object
):
+class renderer(
ABC
):
"""Base class for something that can render."""
"""Base class for something that can render."""
- @
invokation_logge
d
+ @
abstractmetho
d
def render(self):
pass
def render(self):
pass
+ @abstractmethod
def get_name(self):
def get_name(self):
- return self.__class__.__name__
+ pass
class abstaining_renderer(renderer):
"""A renderer that doesn't do it all the time."""
class abstaining_renderer(renderer):
"""A renderer that doesn't do it all the time."""
- def __init__(self, name_to_timeout_dict
)
:
+ def __init__(self, name_to_timeout_dict
: Dict[str, int]) -> None
:
self.name_to_timeout_dict = name_to_timeout_dict
self.last_runs = {}
for key in name_to_timeout_dict:
self.name_to_timeout_dict = name_to_timeout_dict
self.last_runs = {}
for key in name_to_timeout_dict:
- self.last_runs[key] = 0
+ self.last_runs[key] = 0
.0
- def should_render(self, keys_to_skip
)
:
+ def should_render(self, keys_to_skip
: Set[str]) -> Optional[str]
:
now = time.time()
for key in self.name_to_timeout_dict:
if (
now = time.time()
for key in self.name_to_timeout_dict:
if (
@@
-32,12
+37,13
@@
class abstaining_renderer(renderer):
return key
return None
return key
return None
- def render(self):
- tries_per_key = {}
- keys_to_skip = set()
+ @invocation_logged
+ def render(self) -> None:
+ tries_per_key: Dict[str, int] = {}
+ keys_to_skip: Set[str] = set()
while True:
key = self.should_render(keys_to_skip)
while True:
key = self.should_render(keys_to_skip)
- if key
==
None:
+ if key
is
None:
break
if key in tries_per_key:
break
if key in tries_per_key:
@@
-59,23
+65,27
@@
class abstaining_renderer(renderer):
if self.periodic_render(key):
self.last_runs[key] = time.time()
if self.periodic_render(key):
self.last_runs[key] = time.time()
- @invokation_logged
- def periodic_render(self, key):
+ @invocation_logged
+ @abstractmethod
+ def periodic_render(self, key) -> bool:
pass
pass
+ def get_name(self) -> str:
+ return self.__class__.__name__
+
class debuggable_abstaining_renderer(abstaining_renderer):
class debuggable_abstaining_renderer(abstaining_renderer):
- def __init__(self, name_to_timeout_dict
, debug)
:
+ def __init__(self, name_to_timeout_dict
: Dict[str, int], debug: bool) -> None
:
super(debuggable_abstaining_renderer, self).__init__(name_to_timeout_dict)
self.debug = debug
super(debuggable_abstaining_renderer, self).__init__(name_to_timeout_dict)
self.debug = debug
- def debug_prefix(self):
+ def debug_prefix(self)
-> str
:
return self.get_name()
return self.get_name()
- def being_debugged(self):
+ def being_debugged(self)
-> bool
:
return self.debug
return self.debug
- def debug_print(self, template
, *args)
:
+ def debug_print(self, template
: str, *args) -> None
:
try:
if self.being_debugged():
if args:
try:
if self.being_debugged():
if args: