From 323785eaaf8f50a40b48a038600b5d0be7e29115 Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Fri, 13 Aug 2021 06:06:53 +0200 Subject: [PATCH 1/2] Fix #2631 - handle RuntimeError: dictionary changed size during iteration --- panel/reactive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/panel/reactive.py b/panel/reactive.py index 5c1aa7ccd8..a7226699b0 100644 --- a/panel/reactive.py +++ b/panel/reactive.py @@ -248,7 +248,7 @@ def _param_change(self, *events): if not msg: return - for ref, (model, parent) in self._models.items(): + for ref, (model, _) in list(self._models.items()): self._apply_update(events, msg, model, ref) def _process_events(self, events): @@ -939,7 +939,7 @@ def _process_events(self, events): finally: self._updating = False # Ensure that if the data was changed in a user - # callback, we still send the updated data + # callback, we still send the updated data if old_data is not self.value: self._update_cds() if 'indices' in events: From 89b3dc3de09afc8005d393a76a81199475d766fd Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Fri, 13 Aug 2021 15:06:00 +0200 Subject: [PATCH 2/2] Update panel/reactive.py --- panel/reactive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panel/reactive.py b/panel/reactive.py index a7226699b0..d8415bded1 100644 --- a/panel/reactive.py +++ b/panel/reactive.py @@ -248,7 +248,7 @@ def _param_change(self, *events): if not msg: return - for ref, (model, _) in list(self._models.items()): + for ref, (model, _) in self._models.copy().items(): self._apply_update(events, msg, model, ref) def _process_events(self, events):