Skip to content

[BUG] Large nr of myp errors when upgrading Dash 3.0.2 to Dash 3.0.3 #3277

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

Closed
ghaarsma opened this issue Apr 15, 2025 · 7 comments · Fixed by #3287
Closed

[BUG] Large nr of myp errors when upgrading Dash 3.0.2 to Dash 3.0.3 #3277

ghaarsma opened this issue Apr 15, 2025 · 7 comments · Fixed by #3287
Assignees
Labels
bug something broken P1 needed for current cycle

Comments

@ghaarsma
Copy link

We are maintaining a decent sized Dash application. We had a relatively smooth 2.18.2 -> 3.0.0 upgrade. But when upgrading from 3.0.2 to 3.0.3 we encountered a very large (~250) number of mypy issues. I could not detect anything in the release notes that would indicate a change in (mypy) typing.

(venv) PS C:\Users\Python\dash-site> poetry show | Select-string "dash"

dash                        3.0.2           A Python framework for building...
dash-bootstrap-components   2.0.1           Bootstrap themed components for...


(venv) PS C:\Users\Python\dash-site> mypy
Success: no issues found in 86 source files
(venv) PS C:\Users\Python\dash-site> poetry update
Updating dependencies
Resolving dependencies... (52.5s)

Package operations: 0 installs, 2 updates, 0 removals

  - Updating narwhals (1.34.1 -> 1.35.0)
  - Updating dash (3.0.2 -> 3.0.3)

Writing lock file
(venv) PS C:\Users\Python\dash-site> poetry show | Select-string "dash"

dash                        3.0.3           A Python framework for building...
dash-bootstrap-components   2.0.1           Bootstrap themed components for...


(venv) PS C:\Users\Python\dash-site> mypy
dash\dashboards\utils\design.py:99: error: Argument "options" to "RadioItems" has incompatible type "list[dict[str, str]]"; expected "Sequence[str | SupportsFloat | SupportsInt | SupportsComplex | bool] | dict[Any, Any] | Sequence[Options[Any]] | None"  [arg-type]
dash\dashboards\utils\design.py:261: error: Incompatible return value type (got "Div", expected "RangeSlider")  [return-value]
dash\dashboards\utils\design.py:264: error: List item 1 has incompatible type "RangeSlider"; expected "str | int | float"  [list-item]
dash\dashboards\base.py:433: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\base.py:436: error: List item 1 has incompatible type "Pre"; expected "str | int | float"  [list-item]
dash\dashboards\base.py:438: error: List item 3 has incompatible type "Div | Br"; expected "str | int | float"  [list-item]
dash\dashboards\base.py:439: error: List item 4 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\wrap_dash.py:60: error: "__init__" of "Graph" gets multiple values for keyword argument "config"  [misc]
dash\wrap_dash.py:90: error: Argument 1 to "append" of "list" has incompatible type "Ul"; expected "Link"  [arg-type]
dash\wrap_dash.py:92: error: Argument 1 to "append" of "list" has incompatible type "list[Any] | Div"; expected "Link"  [arg-type]
dash\wrap_dash.py:195: error: Argument 5 to "Div" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\wrap_dash.py:195: error: Argument 5 to "Div" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\wrap_dash.py:195: error: Argument 5 to "Div" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\wrap_dash.py:209: error: Argument 2 to "Nav" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\wrap_dash.py:209: error: Argument 2 to "Nav" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\wrap_dash.py:209: error: Argument 2 to "Nav" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\wrap_dash.py:224: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\wrap_dash.py:224: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\wrap_dash.py:224: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\wrap_dash.py:290: error: List item 1 has incompatible type "A"; expected "str | int | float"  [list-item]
dash\dash_app.py:336: error: List item 1 has incompatible type "Img"; expected "str | int | float"  [list-item]
dash\dash_app.py:432: error: List item 1 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dash_app.py:444: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\dash_app.py:444: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\dash_app.py:444: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\dash_app.py:450: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\dash_app.py:450: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\dash_app.py:450: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\dashboards\data_tasks.py:125: error: Argument 2 to "Td" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None"  [arg-type]
dash\dashboards\data_tasks.py:125: error: Argument 2 to "Td" has incompatible type "**dict[str, str]"; expected "bool | None"  [arg-type]
dash\dashboards\data_tasks.py:125: error: Argument 2 to "Td" has incompatible type "**dict[str, str]"; expected "Literal['hidden', 'HIDDEN'] | bool | None"  [arg-type]
dash\dashboards\data_status.py:121: error: Argument "className" to "Div" has incompatible type "int | str"; expected "str | None"  [arg-type]
dash\dashboards\data_status.py:123: error: Argument "title" to "Div" has incompatible type "int | str"; expected "str | None"  [arg-type]
dash\dashboards\data_castcast.py:20: error: Module has no attribute "DataTable"  [attr-defined]
dash\dashboards\data_download.py:40: error: Argument "options" to "Dropdown" has incompatible type "list[dict[str, str]]"; expected "Sequence[str | SupportsFloat | SupportsInt | SupportsComplex | bool] | dict[Any, Any] | Sequence[Options[Any]] | None"  [arg-type]
dash\dashboards\data_download.py:97: error: Argument "start_date" to "DatePickerRange" has incompatible type "date"; expected "str | datetime | None"  [arg-type]
dash\dashboards\data_download.py:98: error: Argument "end_date" to "DatePickerRange" has incompatible type "date"; expected "str | datetime | None"  [arg-type]
dash\dashboards\tension.py:33: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\tension.py:35: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\tension.py:49: error: List item 2 has incompatible type "Interval"; expected "str | int | float"  [list-item]
dash\dashboards\ocean.py:376: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\ocean.py:423: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\ocean.py:497: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\h.py:136: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\h.py:138: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\h.py:160: error: List item 2 has incompatible type "Interval"; expected "str | int | float"  [list-item]
dash\dashboards\h.py:211: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\kpi.py:42: error: List item 1 has incompatible type "Interval"; expected "str | int | float"  [list-item]
dash\dashboards\kpi.py:43: error: List item 2 has incompatible type "Interval"; expected "str | int | float"  [list-item]
dash\dashboards\kpi.py:241: error: Argument "className" to "Div" has incompatible type "int | str"; expected "str | None"  [arg-type]
dash\dashboards\kpi.py:243: error: Argument "title" to "Div" has incompatible type "int | str"; expected "str | None"  [arg-type]
dash\dashboards\performance.py:41: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\performance.py:42: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\performance.py:43: error: List item 2 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\performance.py:45: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\performance.py:46: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\performance.py:47: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sr.py:45: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\sr.py:47: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:57: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:58: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:59: error: List item 2 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:60: error: List item 3 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:61: error: List item 4 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:62: error: List item 5 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:67: error: List item 8 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:68: error: List item 9 has incompatible type "Hr"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:69: error: List item 10 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:70: error: List item 11 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:71: error: List item 12 has incompatible type "Hr"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:72: error: List item 13 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\spare_analysis.py:234: error: Argument 1 to "extend" of "list" has incompatible type "list[Component]"; expected "Iterable[str]"  [arg-type]
dash\dashboards\spare_analysis.py:236: error: Argument 1 to "append" of "list" has incompatible type "B"; expected "str"  [arg-type]
dash\dashboards\sms.py:90: error: List item 0 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:94: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:95: error: List item 3 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:96: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:104: error: List item 0 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:108: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:109: error: List item 3 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:110: error: List item 4 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:111: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:119: error: List item 0 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:129: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:130: error: List item 3 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:131: error: List item 4 has incompatible type "Download"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:132: error: List item 5 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:141: error: List item 7 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:148: error: List item 9 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:149: error: List item 10 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:150: error: List item 11 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:231: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:232: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:233: error: List item 2 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:237: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:238: error: List item 5 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:249: error: List item 8 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\sms.py:250: error: List item 9 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\m.py:72: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\m.py:74: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\m.py:78: error: List item 0 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\m.py:79: error: List item 1 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\m.py:306: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\m.py:685: error: Incompatible types in assignment (expression has type "Graph", variable has type "H4")  [assignment]
dash\dashboards\m.py:970: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\m.py:972: error: List item 2 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\m.py:973: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:313: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:314: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:315: error: List item 2 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:318: error: List item 0 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\loss.py:319: error: List item 1 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\loss.py:322: error: List item 4 has incompatible type "RangeSlider"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:329: error: List item 5 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:330: error: List item 6 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:331: error: List item 7 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:332: error: List item 8 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:333: error: List item 9 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:339: error: List item 0 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\loss.py:340: error: List item 1 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\loss.py:343: error: List item 12 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:347: error: List item 14 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\loss.py:348: error: List item 15 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\m_t.py:74: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\m_t.py:76: error: List item 2 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\m_t.py:98: error: List item 4 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\m_t.py:100: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\hindcast_fatigue.py:39: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\hindcast_fatigue.py:41: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\hindcast_fatigue.py:42: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\hindcast_fatigue.py:43: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\hindcast_fatigue.py:50: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\hindcast_fatigue.py:53: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:68: error: List item 1 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:69: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:70: error: List item 3 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:71: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:72: error: List item 5 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:73: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:74: error: List item 7 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl_demo.py:75: error: List item 8 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:69: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:72: error: List item 3 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:74: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:75: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:244: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:245: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:246: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:248: error: List item 4 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:249: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:250: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:251: error: List item 7 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\fl.py:252: error: List item 8 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:99: error: List item 0 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:101: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:150: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:152: error: List item 2 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:155: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:156: error: List item 4 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:362: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:365: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\f_r.py:366: error: List item 4 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:60: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:62: error: List item 2 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:63: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:64: error: List item 4 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:66: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:67: error: List item 7 has incompatible type "Hr"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:71: error: List item 9 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\cad.py:72: error: List item 10 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\asbuilt_data.py:119: error: List item 1 has incompatible type "Hr"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:186: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:190: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:193: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:194: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:195: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:196: error: List item 7 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:197: error: List item 8 has incompatible type "Store"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:425: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:492: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:493: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:494: error: List item 2 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:495: error: List item 3 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:496: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:497: error: List item 5 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:498: error: List item 6 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:501: error: List item 7 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:502: error: List item 8 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\umb.py:504: error: List item 10 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:53: error: List item 0 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:54: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:58: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:66: error: List item 0 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:67: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:71: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:72: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:113: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\commissioning.py:114: error: List item 1 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:122: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:126: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:127: error: List item 3 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:128: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:129: error: List item 5 has incompatible type "H4"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:130: error: List item 6 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:131: error: List item 7 has incompatible type "H5"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:214: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:215: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:216: error: List item 2 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:219: error: List item 5 has incompatible type "H4"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:220: error: List item 6 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:221: error: List item 7 has incompatible type "H4"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:222: error: List item 8 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:223: error: List item 9 has incompatible type "H4"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:225: error: List item 11 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:312: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:314: error: List item 2 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:315: error: List item 3 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:317: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:318: error: List item 6 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:322: error: List item 10 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:323: error: List item 11 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:324: error: List item 12 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:325: error: List item 13 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:326: error: List item 14 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:358: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\ssc.py:360: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:361: error: List item 1 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:367: error: List item 1 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:368: error: List item 2 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:376: error: List item 3 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:377: error: List item 4 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:378: error: List item 5 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:641: error: Incompatible types in assignment (expression has type "Div", base class "TitleMixin" defined the type as "H2")  [assignment]
dash\dashboards\ssc.py:643: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:644: error: List item 1 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:645: error: List item 2 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:658: error: List item 4 has incompatible type "Div"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:659: error: Module has no attribute "DataTable"  [attr-defined]
dash\dashboards\ssc.py:828: error: List item 0 has incompatible type "H1"; expected "str | int | float"  [list-item]
dash\dashboards\ssc.py:831: error: List item 1 has incompatible type "P"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:113: error: List item 0 has incompatible type "H2"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:114: error: List item 1 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:122: error: List item 0 has incompatible type "Graph"; expected "Div"  [list-item]
dash\dashboards\tool.py:123: error: List item 1 has incompatible type "Graph"; expected "Div"  [list-item]
dash\dashboards\tool.py:126: error: List item 4 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:127: error: List item 5 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:128: error: List item 6 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:129: error: List item 7 has incompatible type "Br"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:132: error: List item 0 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\tool.py:133: error: List item 1 has incompatible type "Loading"; expected "Div"  [list-item]
dash\dashboards\tool.py:139: error: List item 10 has incompatible type "Loading"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:140: error: List item 11 has incompatible type "H3"; expected "str | int | float"  [list-item]
dash\dashboards\tool.py:146: error: List item 13 has incompatible type "Loading"; expected "str | int | float"  [list-item]
Found 253 errors in 29 files (checked 86 source files)
(venv) PS C:\Users\Python\dash-site>
@T4rk1n
Copy link
Contributor

T4rk1n commented Apr 16, 2025

The typing were not resolved by mypy before because of a decorator on the __init__ that mypy can't handle. Sorry forgot the changelog for that fix, all the components before would resolve to Any instead of their class.

Some of these look like legitimate typing issues. I'd like to see if possible the type or component and prop name given to some of these errors.

The first one is suspicious, but dict[str,str] should resolve to a TypedDict of RadioItems.Options.
dash\dashboards\utils\design.py:99: error: Argument "options" to "RadioItems" has incompatible type "list[dict[str, str]]"; expected "Sequence[str | SupportsFloat | SupportsInt | SupportsComplex | bool] | dict[Any, Any] | Sequence[Options[Any]] | None" [arg-type]

There is a bunch of those with str | int | float, but that type is not generated, if it's given to children it should have ComponentType in the union.
dash\dashboards\base.py:433: error: List item 0 has incompatible type "H2"; expected "str | int | float" [list-item]

This one seems like mypy auto resolving the list to the items in the initializer. Can manually type it to something like list[Component]:
dash\wrap_dash.py:90: error: Argument 1 to "append" of "list" has incompatible type "Ul"; expected "Link" [arg-type]

Can we see a snippet for this:
dash\dash_app.py:444: error: Argument 4 to "Div" has incompatible type "**dict[str, str]"; expected "SupportsFloat | SupportsInt | SupportsComplex | None" [arg-type]

@admoore0
Copy link

admoore0 commented Apr 16, 2025

I am seeing the same issue. I've reproduced a minimal example below:

from dash import Dash, html

app = Dash()

app.layout = html.Div([
    "Test",
    html.H1("This will fail"),
])

Running mypy on this file with dash 3.0.3 installed will give the following error:

app.py:7: error: List item 1 has incompatible type "H1"; expected "str | int | float"  [list-item]
Found 1 error in 1 file (checked 1 source file)

The order of the str and the H1 doesn't seem to matter, but replacing the str with another H1 does not give an error.

EDIT: I can also confirm that running mypy on the same file with dash 3.0.2 installed does not generate any errors.

@T4rk1n
Copy link
Contributor

T4rk1n commented Apr 16, 2025

mypy doesn't seem to like the ComponentType when it's used with other types, I seem to remember introducing that because typing with Component didn't work. But I think it was because of the decorator on the __init__, seems to work with the intended behavior with Component now.

@gvwilson
Copy link
Contributor

@ghaarsma please re-try and let us know - thanks.

@gvwilson gvwilson added bug something broken P2 considered for next cycle labels Apr 22, 2025
@T4rk1n
Copy link
Contributor

T4rk1n commented Apr 22, 2025

please re-try and let us know - thanks.

No, it's still a work in progress, there is also a related critical bug with the generation that remove backward compatibility with previous version.

@T4rk1n T4rk1n added P1 needed for current cycle and removed P2 considered for next cycle labels Apr 22, 2025
@T4rk1n T4rk1n self-assigned this Apr 22, 2025
@ghaarsma
Copy link
Author

@T4rk1n , Thank you for all your prompt work on this. I will be testing this shortly after it has been released.

@ghaarsma
Copy link
Author

I did do a quick test on the new Dash 3.0.4 released (hot off the press). It significantly reduced the amount of mypy errors from ~250 in Dash 3.0.3 to about ~40 for Dash 3.0.4. I did do a quick scan and it looks like the remainder of the mypy errors are self inflicted and I will attempt to clean them up in the next few weeks.

Once again, thanks @T4rk1n for all your work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug something broken P1 needed for current cycle
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants