Source code for scratchattach.eventhandlers.cloud_recorder

"""CloudRecorder class (used by ScratchCloud, TwCloud and other classes inheriting from BaseCloud to deliver cloud var values)"""
from __future__ import annotations

from .cloud_events import CloudEvents
from typing import Optional


[docs] class CloudRecorder(CloudEvents):
[docs] def __init__(self, cloud, *, initial_values: Optional[dict] = None): if initial_values is None: initial_values = {} super().__init__(cloud) self.cloud_values = initial_values self.event(self.on_set)
[docs] def get_var(self, var): if var not in self.cloud_values: return None return self.cloud_values[var]
[docs] def get_all_vars(self): return self.cloud_values
[docs] def on_set(self, activity): self.cloud_values[activity.var] = activity.value