import logging # Store context between steps. class Context: def __init__(self): self._vars = {} def as_dict(self): return dict(self._vars) def get(self, key, default=None): return self._vars.get(key, default) def __getitem__(self, key): return self._vars[key] def __setitem__(self, key, value): logging.info("Context: {}={!r}".format(key, value)) self._vars[key] = value def __contains__(self, key): return key in self._vars def __delitem__(self, key): del self._vars[key] def __repr__(self): return repr(self._vars)