Block callback signals from being processed. A context manager to temporarily block/disable callback signals from being processed by the registered listeners. Parameters ---------- signal : str, optional The callback signal to block. The
(self, *, signal=None)
| 398 | |
| 399 | @contextlib.contextmanager |
| 400 | def blocked(self, *, signal=None): |
| 401 | """ |
| 402 | Block callback signals from being processed. |
| 403 | |
| 404 | A context manager to temporarily block/disable callback signals |
| 405 | from being processed by the registered listeners. |
| 406 | |
| 407 | Parameters |
| 408 | ---------- |
| 409 | signal : str, optional |
| 410 | The callback signal to block. The default is to block all signals. |
| 411 | """ |
| 412 | orig = self.callbacks |
| 413 | try: |
| 414 | if signal is None: |
| 415 | # Empty out the callbacks |
| 416 | self.callbacks = {} |
| 417 | else: |
| 418 | # Only remove the specific signal |
| 419 | self.callbacks = {k: orig[k] for k in orig if k != signal} |
| 420 | yield |
| 421 | finally: |
| 422 | self.callbacks = orig |
| 423 | |
| 424 | |
| 425 | class silent_list(list): |
no outgoing calls