@@ -257,11 +257,7 @@ def run(
257257 )
258258
259259 # Default the global "debug" flag to True
260- debug = kwargs .get ('debug' , True )
261-
262- # Disable debug flag when calling superclass because it doesn't work
263- # in notebook
264- kwargs ['debug' ] = False
260+ debug = kwargs .pop ('debug' , True )
265261
266262 # Enable supported dev tools
267263 if debug :
@@ -284,15 +280,33 @@ def run(
284280 # there is no active kernel.
285281 kwargs ['dev_tools_hot_reload' ] = mode == "external"
286282
287- # suppress warning banner printed to standard out
288- flask .cli .show_server_banner = lambda * args , ** kwargs : None
289-
290283 # Set up custom callback exception handling
291284 self ._config_callback_exception_handling (
292285 dev_tools_prune_errors = kwargs .get ('dev_tools_prune_errors' , True ),
293286 inline_exceptions = inline_exceptions ,
294287 )
295288
289+ dev_tools_args = dict (
290+ debug = debug ,
291+ dev_tools_ui = kwargs .pop ("dev_tools_ui" , None ),
292+ dev_tools_props_check = kwargs .pop ("dev_tools_props_check" , None ),
293+ dev_tools_serve_dev_bundles = kwargs .pop ("dev_tools_serve_dev_bundles" , None ),
294+ dev_tools_hot_reload = kwargs .pop ("dev_tools_hot_reload" , None ),
295+ dev_tools_hot_reload_interval = kwargs .pop ("dev_tools_hot_reload_interval" , None ),
296+ dev_tools_hot_reload_watch_interval = kwargs .pop ("dev_tools_hot_reload_watch_interval" , None ),
297+ dev_tools_hot_reload_max_retry = kwargs .pop ("dev_tools_hot_reload_max_retry" , None ),
298+ dev_tools_silence_routes_logging = kwargs .pop ("dev_tools_silence_routes_logging" , None ),
299+ dev_tools_prune_errors = kwargs .pop ("dev_tools_prune_errors" , None ),
300+ )
301+
302+ if len (kwargs ):
303+ raise Exception (f"Invalid keyword argument: { list (kwargs .keys ())} " )
304+
305+ self .enable_dev_tools (** dev_tools_args )
306+
307+ # suppress warning banner printed to standard out
308+ flask .cli .show_server_banner = lambda * args , ** kw : None
309+
296310 # prevent partial import of orjson when it's installed and mode=jupyterlab
297311 # TODO: why do we need this? Why only in this mode? Importing here in
298312 # all modes anyway, in case there's a way it can pop up in another mode
0 commit comments