(self, updated, reraise=False)
| 132 | |
| 133 | @contextlib.contextmanager |
| 134 | def rollback(self, updated, reraise=False): |
| 135 | old = copy.deepcopy(self._options) |
| 136 | try: |
| 137 | yield |
| 138 | except exceptions.OptionsError as e: |
| 139 | # Notify error handlers |
| 140 | self.errored.send(exc=e) |
| 141 | # Rollback |
| 142 | self.__dict__["_options"] = old |
| 143 | self.changed.send(updated=updated) |
| 144 | if reraise: |
| 145 | raise e |
| 146 | |
| 147 | def subscribe(self, func, opts): |
| 148 | """ |