Skip to content

Commit 36a95ba

Browse files
committed
feat: Dash() add new parameter hide_all_callbacks
1 parent 8804571 commit 36a95ba

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

dash/_callback.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def callback(
7979
on_error: Optional[Callable[[Exception], Any]] = None,
8080
api_endpoint: Optional[str] = None,
8181
optional: Optional[bool] = False,
82-
hidden: Optional[bool] = False,
82+
hidden: Optional[bool] = None,
8383
**_kwargs,
8484
) -> Callable[..., Any]:
8585
"""
@@ -181,6 +181,7 @@ def callback(
181181
config_prevent_initial_callbacks = _kwargs.pop(
182182
"config_prevent_initial_callbacks", False
183183
)
184+
config_hide_all_callbacks = _kwargs.pop("config_hide_all_callbacks", False)
184185
callback_map = _kwargs.pop("callback_map", GLOBAL_CALLBACK_MAP)
185186
callback_list = _kwargs.pop("callback_list", GLOBAL_CALLBACK_LIST)
186187

@@ -222,6 +223,7 @@ def callback(
222223
callback_list,
223224
callback_map,
224225
config_prevent_initial_callbacks,
226+
config_hide_all_callbacks,
225227
*_args,
226228
**_kwargs,
227229
background=background_spec,
@@ -265,6 +267,7 @@ def insert_callback(
265267
callback_list,
266268
callback_map,
267269
config_prevent_initial_callbacks,
270+
config_hide_all_callbacks,
268271
output,
269272
outputs_indices,
270273
inputs,
@@ -277,11 +280,14 @@ def insert_callback(
277280
dynamic_creator: Optional[bool] = False,
278281
no_output=False,
279282
optional=False,
280-
hidden=False,
283+
hidden=None,
281284
):
282285
if prevent_initial_call is None:
283286
prevent_initial_call = config_prevent_initial_callbacks
284287

288+
if hidden is None:
289+
hidden = config_hide_all_callbacks
290+
285291
_validate.validate_duplicate_output(
286292
output, prevent_initial_call, config_prevent_initial_callbacks
287293
)
@@ -600,6 +606,7 @@ def register_callback(
600606
callback_list,
601607
callback_map,
602608
config_prevent_initial_callbacks,
609+
config_hide_all_callbacks,
603610
*_args,
604611
**_kwargs,
605612
):
@@ -639,6 +646,7 @@ def register_callback(
639646
callback_list,
640647
callback_map,
641648
config_prevent_initial_callbacks,
649+
config_hide_all_callbacks,
642650
insert_output,
643651
output_indices,
644652
flat_inputs,
@@ -651,7 +659,7 @@ def register_callback(
651659
running=running,
652660
no_output=not has_output,
653661
optional=_kwargs.get("optional", False),
654-
hidden=_kwargs.get("hidden", False),
662+
hidden=_kwargs.get("hidden"),
655663
)
656664

657665
# pylint: disable=too-many-locals
@@ -836,6 +844,7 @@ def register_clientside_callback(
836844
callback_list,
837845
callback_map,
838846
config_prevent_initial_callbacks,
847+
config_hide_all_callbacks,
839848
inline_scripts,
840849
clientside_function: ClientsideFuncType,
841850
*args,
@@ -847,6 +856,7 @@ def register_clientside_callback(
847856
callback_list,
848857
callback_map,
849858
config_prevent_initial_callbacks,
859+
config_hide_all_callbacks,
850860
output,
851861
None,
852862
inputs,

dash/dash.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,13 @@ class Dash(ObsoleteChecker):
367367
those callbacks you wish to have an initial call. This setting has no
368368
effect on triggering callbacks when their inputs change later on.
369369
370+
:param hide_all_callbacks: Default ``False``: Sets the default value of
371+
``hidden`` for all callbacks added to the app. Normally all callbacks
372+
are visible in the devtools callbacks tab. You can set this for
373+
individual callbacks by setting ``hidden`` in their definitions, or set
374+
it ``True`` here in which case you must explicitly set it ``False`` for
375+
those callbacks you wish to remain visible in the devtools callbacks tab.
376+
370377
:param show_undo_redo: Default ``False``, set to ``True`` to enable undo
371378
and redo buttons for stepping through the history of the app state.
372379
:type show_undo_redo: boolean
@@ -457,6 +464,7 @@ def __init__( # pylint: disable=too-many-statements
457464
external_stylesheets: Optional[Sequence[Union[str, Dict[str, Any]]]] = None,
458465
suppress_callback_exceptions: Optional[bool] = None,
459466
prevent_initial_callbacks: bool = False,
467+
hide_all_callbacks: bool = False,
460468
show_undo_redo: bool = False,
461469
extra_hot_reload_paths: Optional[Sequence[str]] = None,
462470
plugins: Optional[list] = None,
@@ -537,6 +545,7 @@ def __init__( # pylint: disable=too-many-statements
537545
"suppress_callback_exceptions", suppress_callback_exceptions, False
538546
),
539547
prevent_initial_callbacks=prevent_initial_callbacks,
548+
hide_all_callbacks=hide_all_callbacks,
540549
show_undo_redo=show_undo_redo,
541550
extra_hot_reload_paths=extra_hot_reload_paths or [],
542551
title=title,
@@ -671,6 +680,7 @@ def _setup_hooks(self):
671680
self._callback_list,
672681
self.callback_map,
673682
self.config.prevent_initial_callbacks,
683+
self.config.hide_all_callbacks,
674684
self._inline_scripts,
675685
clientside_function,
676686
*args,
@@ -1433,6 +1443,7 @@ def clientside_callback(self, clientside_function, *args, **kwargs):
14331443
self._callback_list,
14341444
self.callback_map,
14351445
self.config.prevent_initial_callbacks,
1446+
self.config.hide_all_callbacks,
14361447
self._inline_scripts,
14371448
clientside_function,
14381449
*args,
@@ -1456,6 +1467,7 @@ def callback(self, *_args, **_kwargs) -> Callable[..., Any]:
14561467
return _callback.callback(
14571468
*_args,
14581469
config_prevent_initial_callbacks=self.config.prevent_initial_callbacks,
1470+
config_hide_all_callbacks=self.config.hide_all_callbacks,
14591471
callback_list=self._callback_list,
14601472
callback_map=self.callback_map,
14611473
callback_api_paths=self.callback_api_paths,

0 commit comments

Comments
 (0)