NiceGUI: Change threshold for binding propagation warning
All notes in this series:
- NiceGUI: Always show main scrollbar
- NiceGUI: Show a confirmation popup
- NiceGUI: File upload and download
- FastAPI: Pretty print JSON
- NiceGUI with Click, Poetry, auto-reload and classes
- NiceGUI: tkinter error when updating pyplot
- NiceGUI: Bind visibility to arbitrary value
- NiceGUI: Change threshold for binding propagation warning
In NiceGUI you may start to see a binding propagation
warning logged repeatedly if you have lots of binding.
For example:
WARNING:root:binding propagation for 626 active links took 0.010 s
WARNING:root:binding propagation for 626 active links took 0.015 s
WARNING:root:binding propagation for 626 active links took 0.012 s
WARNING:root:binding propagation for 626 active links took 0.013 s
WARNING:root:binding propagation for 626 active links took 0.012 s
Origin of the warning §
This logging comes from NiceGUI, from these lines in binding.py
:
binding.py
§
if time.time() - t > MAX_PROPAGATION_TIME:
globals.log.warning(
f'binding propagation for {len(active_links)} active links took {time.time() - t:.3f} s')
Changing the warning threshold §
Unfortunately there is no “nice” way to change the value of MAX_PROPAGATION_TIME
, since it is defined at the top of binding.py
as follows:
binding.py
§
MAX_PROPAGATION_TIME = 0.01
However, since this is Python where nothing is truly private, you can just monkeypatch NiceGUI:
import nicegui.binding
# Increase threshold for binding propagation warning from 0.01 to 0.02 seconds
nicegui.binding.MAX_PROPAGATION_TIME = 0.02
All notes in this series:
- NiceGUI: Always show main scrollbar
- NiceGUI: Show a confirmation popup
- NiceGUI: File upload and download
- FastAPI: Pretty print JSON
- NiceGUI with Click, Poetry, auto-reload and classes
- NiceGUI: tkinter error when updating pyplot
- NiceGUI: Bind visibility to arbitrary value
- NiceGUI: Change threshold for binding propagation warning