Update and set all known options from kwargs. Returns a dictionary of unknown options.
(self, **kwargs)
| 219 | self.changed.send(updated=set(self._options.keys())) |
| 220 | |
| 221 | def update_known(self, **kwargs): |
| 222 | """ |
| 223 | Update and set all known options from kwargs. Returns a dictionary |
| 224 | of unknown options. |
| 225 | """ |
| 226 | known, unknown = {}, {} |
| 227 | for k, v in kwargs.items(): |
| 228 | if k in self._options: |
| 229 | known[k] = v |
| 230 | else: |
| 231 | unknown[k] = v |
| 232 | updated = set(known.keys()) |
| 233 | if updated: |
| 234 | with self.rollback(updated, reraise=True): |
| 235 | for k, v in known.items(): |
| 236 | self._options[k].set(v) |
| 237 | self.changed.send(updated=updated) |
| 238 | return unknown |
| 239 | |
| 240 | def update_defer(self, **kwargs): |
| 241 | unknown = self.update_known(**kwargs) |