@@ -175,11 +175,13 @@ def _do_skip(error):
175
175
176
176
# werkzeug<2.1.0
177
177
if hasattr (tbtools , "get_current_traceback" ):
178
- return tbtools .get_current_traceback (skip = _get_skip (error )).render_full ()
178
+ return tbtools .get_current_traceback ( # type: ignore
179
+ skip = _get_skip (error )
180
+ ).render_full ()
179
181
180
182
if hasattr (tbtools , "DebugTraceback" ):
181
183
# pylint: disable=no-member
182
- return tbtools .DebugTraceback (
184
+ return tbtools .DebugTraceback ( # type: ignore
183
185
error , skip = _get_skip (error )
184
186
).render_debugger_html (True , secret , True )
185
187
@@ -378,6 +380,8 @@ class Dash:
378
380
_plotlyjs_url : str
379
381
STARTUP_ROUTES : list = []
380
382
383
+ server : flask .Flask
384
+
381
385
def __init__ ( # pylint: disable=too-many-statements
382
386
self ,
383
387
name : Optional [str ] = None ,
@@ -404,7 +408,7 @@ def __init__( # pylint: disable=too-many-statements
404
408
prevent_initial_callbacks : bool = False ,
405
409
show_undo_redo : bool = False ,
406
410
extra_hot_reload_paths : Optional [List [str ]] = None ,
407
- plugins : Optional [List [ Dict [ str , Any ]] ] = None ,
411
+ plugins : Optional [list ] = None ,
408
412
title : str = "Dash" ,
409
413
update_title : str = "Updating..." ,
410
414
long_callback_manager : Optional [
@@ -432,7 +436,7 @@ def __init__( # pylint: disable=too-many-statements
432
436
name = getattr (server , "name" , caller_name )
433
437
elif isinstance (server , bool ):
434
438
name = name if name else caller_name
435
- self .server = flask .Flask (name ) if server else None
439
+ self .server = flask .Flask (name ) if server else None # type: ignore
436
440
else :
437
441
raise ValueError ("server must be a Flask app or a boolean" )
438
442
@@ -444,7 +448,7 @@ def __init__( # pylint: disable=too-many-statements
444
448
name = name ,
445
449
assets_folder = os .path .join (
446
450
flask .helpers .get_root_path (name ), assets_folder
447
- ),
451
+ ), # type: ignore
448
452
assets_url_path = assets_url_path ,
449
453
assets_ignore = assets_ignore ,
450
454
assets_external_path = get_combined_config (
@@ -550,7 +554,9 @@ def __init__( # pylint: disable=too-many-statements
550
554
if not self .logger .handlers and add_log_handler :
551
555
self .logger .addHandler (logging .StreamHandler (stream = sys .stdout ))
552
556
553
- if isinstance (plugins , patch_collections_abc ("Iterable" )):
557
+ if plugins is not None and isinstance (
558
+ plugins , patch_collections_abc ("Iterable" )
559
+ ):
554
560
for plugin in plugins :
555
561
plugin .plug (self )
556
562
@@ -1965,7 +1971,7 @@ def run(
1965
1971
port = "8050" ,
1966
1972
proxy = None ,
1967
1973
debug = None ,
1968
- jupyter_mode : JupyterDisplayMode = None ,
1974
+ jupyter_mode : Optional [ JupyterDisplayMode ] = None ,
1969
1975
jupyter_width = "100%" ,
1970
1976
jupyter_height = 650 ,
1971
1977
jupyter_server_url = None ,
@@ -2100,7 +2106,7 @@ def run(
2100
2106
port = int (port )
2101
2107
assert port in range (1 , 65536 )
2102
2108
except Exception as e :
2103
- e .args = [ f"Expecting an integer from 1 to 65535, found port={ repr (port )} " ]
2109
+ e .args = ( f"Expecting an integer from 1 to 65535, found port={ repr (port )} " ,)
2104
2110
raise
2105
2111
2106
2112
# so we only see the "Running on" message once with hot reloading
0 commit comments