-
-
Notifications
You must be signed in to change notification settings - Fork 525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #2631 - handle RuntimeError: dictionary changed size during iteration #2632
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2632 +/- ##
=======================================
Coverage 83.06% 83.06%
=======================================
Files 184 184
Lines 23319 23319
=======================================
Hits 19369 19369
Misses 3950 3950
Continue to review full report at Codecov.
|
I would definitely use |
Good advice @hoxbro! |
Our threading expert @hoxbro to the rescue :-) Thanks. |
There is a longer discussion here to learn from https://bugs.python.org/issue40327 |
* Fix #2631 - handle RuntimeError: dictionary changed size during iteration (#2632) * Fix #2631 - handle RuntimeError: dictionary changed size during iteration * Update panel/reactive.py Co-authored-by: Marc Skov Madsen <masma@orsted.dk> Co-authored-by: Philipp Rudiger <prudiger@anaconda.com> * Ensure tests pass in packaged version (#2636) * Ensure tests pass in packaged version * Update plotly test * Add option to hide constant parameters (#2637) * Add option to hide constant parameters * Add test * Add support for bokeh 2.4 (#2644) * Ensure sessions get distinct files in config (#2646) * Fix bug when updating Trend data (#2647) * Enhance templates docs (#2658) * clarifiy a sentence in the intro * add a short definition for modal * update the number of areas * add links to template reference * add an image of the 4 template areas * add a modal section * add link to the Golden framework * clarify theming * Added on_session_destroyed callback (#2659) * Cleanup * Ensure sorters are applied correctly after updating Tabulator value (#2639) * Ensure sorters are applied correctly after updating Tabulator value * Fix indents * Add Folium reference notebook (#2672) * add Folium reference * clean up notebook * Fix typo * clear notebook * Fix compatibility with bokeh 2.4 DocumentCallbackManager (#2687) * Fix compatibility with bokeh 2.4 DocumentCallbackManager * Fix flake * correctly accessing the filtered dataframe for selection of tabulator… (#2676) * correctly accessing the filtered dataframe for selection of tabulator #2642 * removing unused fixture * Ensure threaded servers are killed after test failures (#2688) * Unpin xarray * Unescape child literal HTML in ReactiveHTML (#2690) * Stricter validation for linking syntax in ReactiveHTML._template (#2689) * Stricter validation for linking syntax in ReactiveHTML._template * Add tests * Update docs * Clarify child templates * fix-reloading (#2692) Co-authored-by: Marc Skov Madsen <masma@orsted.dk> * Ensure Trend indicator can be rendered in layout (#2694) * Resolve remaining compatibility issues with bokeh 2.4 (#2696) * resize plot when window resizes (#2704) Co-authored-by: Marc Skov Madsen <masma@orsted.dk> * Editable sliders' `name` can be changed (#2678) * add tests for editable int and float sliders * add failing tests when updating their name * prevent the composite layout from using name The Column/Row wrapping the composite widget inherited the name param and watched it. This is no longer true, which allows the title of some composite widgets to be updated. * Switch binder links to latest version (#2705) * fix-plotly-mapbox-relayout (#2717) Co-authored-by: Marc Skov Madsen <masma@orsted.dk> * Add the version number in the binder badge (#2711) * Add the version number in the binder badge Which should help us remember that the link has to be updated after a new release. * Support assignment operators in ReactiveHTML scripts (#2718) * Support assignment operators in ReactiveHTML scripts * Add test * Fix support for async functions on pn.state.add_periodic_callback (#2737) * Upgrade to bokeh 2.4 and drop compatibility for older versions (#2739) * Update changelog * Fix rebase error * Fix flake * Bump panel.js version * Fix rc version * Update bokeh versions Co-authored-by: Marc Skov Madsen <marc.skov.madsen@gmail.com> Co-authored-by: Marc Skov Madsen <masma@orsted.dk> Co-authored-by: Maxime Liquet <35924738+maximlt@users.noreply.github.com> Co-authored-by: Nestor Ghenzi <46707985+nghenzi@users.noreply.github.com> Co-authored-by: Simon <simonparlow@gmx.net> Co-authored-by: maximlt <mliquet@anaconda.com>
Fixes #2631. Probably also needed for #2597 to work in practice.
I don't know if
_apply_update
ifself._models.items()
has changed?.copy
instead oflist
? But according to https://www.geeksforgeeks.org/python-cloning-copying-list/ list seems like an efficient solution. And usinglist
is also what is mostly recommended here https://stackoverflow.com/questions/11941817/how-to-avoid-runtimeerror-dictionary-changed-size-during-iteration-error.