Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from copy import deepcopy
- class Storage:
- def __init__(self):
- self._dict = dict()
- def __getitem__(self, item):
- return self._dict[item]
- def edit(self):
- return self.ContextManager(self)
- class ContextManager:
- def __init__(self, storage):
- self.storage = storage
- self.copy_dict = deepcopy(storage._dict)
- def __enter__(self):
- return self
- def __exit__(self, exc_type, exc_val, exc_tb):
- if exc_type:
- # raise
- return True
- self.storage._dict = self.copy_dict
- return True
- def __getitem__(self, key):
- return self.copy_dict[key]
- def __setitem__(self, key, value):
- self.copy_dict[key] = value
- def __delitem__(self, key):
- del self.copy_dict[key]
Add Comment
Please, Sign In to add comment