provided to the c'tor.
"""
+
def __init__(self, update_ids_to_update_secs: Dict[str, float]) -> None:
"""The update_ids_to_update_secs dict parameter describes one or more
update types (unique update_ids) and the periodicity(ies), in
for update_id in sorted(self.last_reminder_ts.keys()):
if force_all_updates_to_run:
logger.debug('Forcing all updates to run')
- self.update(
- update_id, self.now, self.last_reminder_ts[update_id]
- )
+ self.update(update_id, self.now, self.last_reminder_ts[update_id])
self.last_reminder_ts[update_id] = self.now
return
refresh_secs = self.update_ids_to_update_secs[update_id]
last_run = self.last_reminder_ts[update_id]
if last_run is None: # Never run before
- logger.debug(
- f'id {update_id} has never been run; running it now'
- )
- self.update(
- update_id, self.now, self.last_reminder_ts[update_id]
- )
+ logger.debug(f'id {update_id} has never been run; running it now')
+ self.update(update_id, self.now, self.last_reminder_ts[update_id])
self.last_reminder_ts[update_id] = self.now
else:
delta = self.now - last_run
terminate the updates.
"""
+
@background_thread
def pace_maker(self, should_terminate) -> None:
"""Entry point for a background thread to own calling heartbeat()
override_sleep_delay: Optional[float] = None,
) -> None:
import math_utils
+
super().__init__(update_ids_to_update_secs)
if override_sleep_delay is not None:
logger.debug(f'Overriding sleep delay to {override_sleep_delay}')
This may block for as long as self.sleep_delay.
"""
- logger.debug(
- 'Setting shutdown event and waiting for background thread.'
- )
+ logger.debug('Setting shutdown event and waiting for background thread.')
self.should_terminate.set()
self.updater_thread.join()
logger.debug('Background thread terminated.')
# else before looping up into wait again.
"""
+
def __init__(
- self,
- update_ids_to_update_secs: Dict[str, float],
- *,
- override_sleep_delay: Optional[float] = None,
+ self,
+ update_ids_to_update_secs: Dict[str, float],
+ *,
+ override_sleep_delay: Optional[float] = None,
) -> None:
self._something_changed = threading.Event()
- super().__init__(update_ids_to_update_secs,
- override_sleep_delay=override_sleep_delay)
+ super().__init__(
+ update_ids_to_update_secs, override_sleep_delay=override_sleep_delay
+ )
def something_changed(self):
self._something_changed.set()
def reset(self):
self._something_changed.clear()
- def wait(self,
- *,
- timeout=None):
- return self._something_changed.wait(
- timeout=timeout
- )
+ def wait(self, *, timeout=None):
+ return self._something_changed.wait(timeout=timeout)