Skip to content

Make joins with Any more precise - #22336

Open
ilevkivskyi wants to merge 4 commits into
python:masterfrom
ilevkivskyi:join-any
Open

ilevkivskyi wants to merge 4 commits into
python:masterfrom
ilevkivskyi:join-any

Conversation

@ilevkivskyi

Copy link
Copy Markdown
Member

Currently, we have join(Any, X) = Any, but this causes various false negatives. Some of these false negatives will be exacerbated by #22286. This PR makes join(Any, X) = X | Any (with obvious exceptions for object, Never, etc).

Note I also simplify/unify logic for callables by deleting combine_similar_callables().

Since this fixes false negatives I expect some fallout, but hopefully not too big.
cc @hauntsaninja @JukkaL

@hauntsaninja

Copy link
Copy Markdown
Collaborator

Primer will be interesting! :-)

@github-actions

Copy link
Copy Markdown
Contributor

Diff from mypy_primer, showing the effect of this PR on open source code:

optuna (https://github.com/optuna/optuna)
+ optuna/cli.py:731: error: Argument "study_name" to "load_study" has incompatible type "bool | BaseStorage | Any"; expected "str | None"  [arg-type]
+ optuna/cli.py:732: error: Argument "storage" to "load_study" has incompatible type "bool | BaseStorage | Any"; expected "str | BaseStorage"  [arg-type]
+ optuna/cli.py:733: error: Argument "sampler" to "load_study" has incompatible type "bool | BaseStorage | Any | None"; expected "BaseSampler | None"  [arg-type]

spark (https://github.com/apache/spark)
+ python/pyspark/core/rdd.py:1384: error: Value of type variable "SupportsRichComparisonT" of "bisect_left" cannot be "K | Any"  [type-var]
+ python/pyspark/pandas/frame.py:10263: error: Argument 1 to "summary" of "DataFrame" has incompatible type "*list[list[str] | Any]"; expected "str"  [arg-type]
+ python/pyspark/pandas/namespace.py:1179: error: Value of type variable "IntStrT" of "read_excel" cannot be "str | int"  [type-var]
+ python/pyspark/pandas/namespace.py:1179: note: Error code "type-var" not covered by "type: ignore[return-value]" comment
+ python/pyspark/pandas/namespace.py:1181: error: Argument "sheet_name" to "read_excel" has incompatible type "str | int | list[str | int] | None"; expected "list[str | int]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "int | Sequence[int]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "MutableSequence[Any] | ndarray[tuple[int], dtype[Any]] | tuple[Any, ...] | range"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "int | Sequence[int] | str"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "str | SequenceNotStr[Hashable] | range | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index[Any] | Series[Any] | Callable[[Any], bool]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "str | ExtensionDtype | dtype[generic[Any]] | type[complex] | type[bool] | type[object] | type[str] | Mapping[str, str | ExtensionDtype | dtype[generic[Any]] | type[complex] | type[bool] | type[object] | type[str]]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "Literal['xlrd', 'openpyxl', 'odf', 'pyxlsb', 'calamine']"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "Mapping[int | str, Callable[[Any], Any]]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "Iterable[Hashable]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "int | Sequence[int] | Callable[[object], bool]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "Sequence[str] | dict[str | int, Sequence[str]]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "bool"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "bool | Sequence[int] | Sequence[Sequence[str] | Sequence[int]] | dict[str, Sequence[int] | list[str]]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "dict[Hashable, str] | str"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "str"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "int"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "dict[str, Any] | None"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: note: "dict" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
+ python/pyspark/pandas/namespace.py:1183: note: Consider using "Mapping" instead, which is covariant in the value type
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "Literal['pyarrow', 'numpy_nullable', _NoDefault.no_default]"  [arg-type]
+ python/pyspark/pandas/namespace.py:1183: error: Argument 4 to "read_excel" has incompatible type "**dict[str, dict[str, str | dtype[Any] | ExtensionDtype] | int | list[int] | str | list[int | str] | <7 more items>]"; expected "dict[str, Any]"  [arg-type]
+ python/pyspark/pandas/numpy_compat.py:597: error: Argument 1 to "column_op" has incompatible type "Callable[[Column], Column] | overloaded function | Callable[[Any], Any] | Callable[[Column | str], Column] | Callable[[Any], object] | Any"; expected "Callable[..., Column]"  [arg-type]
+ python/pyspark/sql/connect/session.py:754: error: Item "Hashable" of "Hashable | Any | Any" has no attribute "items"  [union-attr]
+ python/pyspark/mllib/clustering.py:943: error: Incompatible return value type (got "list[float | Any | Any]", expected "list[float64]")  [return-value]

prefect (https://github.com/PrefectHQ/prefect)
+ src/prefect/server/models/block_schemas.py:587: error: Need type annotation for "block_schema_fields_copy"  [var-annotated]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "UUID"  [arg-type]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "str"  [arg-type]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "Literal['cancelling_timeout_teardown.v1', 'pending_claim_teardown.v1']"  [arg-type]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "Mapping[str, Any]"  [arg-type]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "Mapping[str, Any] | None"  [arg-type]
+ src/prefect/server/services/cancellation_cleanup.py:357: error: Argument 1 to "enqueue" of "WorkerCleanupQueue" has incompatible type "**dict[str, object]"; expected "UUID | None"  [arg-type]

openlibrary (https://github.com/internetarchive/openlibrary)
+ openlibrary/catalog/add_book/__init__.py: note: In function "new_work":
+ openlibrary/catalog/add_book/__init__.py:308: error: Item "dict[str, str]" of "dict[str, str] | Any" has no attribute "append"  [union-attr]
+ openlibrary/catalog/add_book/__init__.py: note: At top level:
+ openlibrary/plugins/books/dynlinks.py: note: In member "process_doc" of class "DataProcessor":
+ openlibrary/plugins/books/dynlinks.py:352: error: "object" has no attribute "insert"  [attr-defined]
+ openlibrary/plugins/books/dynlinks.py:391: error: Argument 1 to "trim" has incompatible type "object"; expected "dict[Any, Any]"  [arg-type]
+ openlibrary/plugins/books/dynlinks.py:392: error: Argument 1 to "trim" has incompatible type "object"; expected "dict[Any, Any]"  [arg-type]

zope.interface (https://github.com/zopefoundation/zope.interface)
+ src/zope/interface/common/tests/test_collections.py:106: error: Need type annotation for "CONSTRUCTORS"  [var-annotated]

isort (https://github.com/pycqa/isort)
+ isort/settings.py:394: error: No overload variant of "frozenset" matches argument type "object"  [call-overload]
+ isort/settings.py:394: note: Possible overload variants:
+ isort/settings.py:394: note:     def [_T_co] frozenset() -> frozenset[_T_co]
+ isort/settings.py:394: note:     def [_T_co] frozenset(Iterable[_T_co], /) -> frozenset[_T_co]
+ isort/settings.py:396: error: No overload variant of "frozenset" matches argument type "object"  [call-overload]
+ isort/settings.py:396: note: Possible overload variants:
+ isort/settings.py:396: note:     def [_T_co] frozenset() -> frozenset[_T_co]
+ isort/settings.py:396: note:     def [_T_co] frozenset(Iterable[_T_co], /) -> frozenset[_T_co]
+ isort/settings.py:397: error: Unsupported right operand type for in ("object")  [operator]
+ isort/settings.py:422: error: No overload variant of "frozenset" matches argument type "object"  [call-overload]
+ isort/settings.py:422: note: Possible overload variants:
+ isort/settings.py:422: note:     def [_T_co] frozenset() -> frozenset[Any]
+ isort/settings.py:422: note:     def [_T_co] frozenset(Iterable[Any], /) -> frozenset[Any]
+ isort/settings.py:422: error: Argument 1 to "tuple" has incompatible type "object"; expected "Iterable[Any]"  [arg-type]
+ isort/settings.py:424: error: "object" has no attribute "__iter__"; maybe "__dir__" or "__str__"? (not iterable)  [attr-defined]
+ isort/settings.py:444: error: Argument 1 to "Path" has incompatible type "object"; expected "str | PathLike[str]"  [arg-type]
+ isort/settings.py:450: error: "object" has no attribute "__iter__"; maybe "__dir__" or "__str__"? (not iterable)  [attr-defined]
+ isort/settings.py:466: error: Argument 1 to "FormattingPluginDoesNotExist" has incompatible type "object"; expected "str"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "str"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "frozenset[str]"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "bool"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "int"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "tuple[str, ...]"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "dict[str, frozenset[str]]"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "WrapModes"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "dict[str, str]"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "tuple[Path, ...]"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "Callable[[str, str, object], str] | None"  [arg-type]
+ isort/settings.py:498: error: Argument 2 to "__init__" of "_Config" has incompatible type "**dict[str, object]"; expected "dict[Path, set[Path]]"  [arg-type]

colour (https://github.com/colour-science/colour)
- colour/io/luts/lut.py:1433: error: No overload variant of "pad" matches argument types "ndarray[tuple[Any, ...], dtype[float64 | Any]]", "tuple[int, Any | signedinteger[_8Bit] | signedinteger[_16Bit] | signedinteger[_32Bit] | signedinteger[_64Bit] | unsignedinteger[_8Bit] | unsignedinteger[_16Bit] | unsignedinteger[_32Bit] | unsignedinteger[_64Bit]]", "str", "float"  [call-overload]
+ colour/io/luts/lut.py:1433: error: No overload variant of "pad" matches argument types "ndarray[tuple[Any, ...], dtype[float64 | Any]]", "tuple[int, signedinteger[_8Bit] | signedinteger[_16Bit] | signedinteger[_32Bit] | signedinteger[_64Bit] | unsignedinteger[_8Bit] | unsignedinteger[_16Bit] | unsignedinteger[_32Bit] | unsignedinteger[_64Bit] | Any]", "str", "float"  [call-overload]
+ colour/notation/munsell/centore2014.py:849: error: Argument 1 to "xp_as_float_array" has incompatible type "list[ndarray[tuple[Any, ...], dtype[floating[_16Bit] | floating[_32Bit] | float64]] | Any | float]"; expected "Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]"  [arg-type]
- colour/plotting/common.py:322: error: Argument 1 to "update" of "MutableMapping" has incompatible type "dict[str, Any]"; expected "SupportsKeysAndGetItem[Literal['agg.path.chunksize', 'animation.bitrate', 'animation.codec', 'animation.convert_args', 'animation.convert_path', 'animation.embed_limit', 'animation.ffmpeg_args', 'animation.ffmpeg_path', 'animation.frame_format', 'animation.html', 'animation.writer', 'axes.autolimit_mode', 'axes.axisbelow', 'axes.edgecolor', 'axes.facecolor', 'axes.formatter.limits', 'axes.formatter.min_exponent', 'axes.formatter.offset_threshold', 'axes.formatter.use_locale', 'axes.formatter.use_mathtext', 'axes.formatter.useoffset', 'axes.grid', 'axes.grid.axis', 'axes.grid.which', 'axes.labelcolor', 'axes.labelpad', 'axes.labelsize', 'axes.labelweight', 'axes.linewidth', 'axes.prop_cycle', 'axes.spines.bottom', 'axes.spines.left', 'axes.spines.right', 'axes.spines.top', 'axes.titlecolor', 'axes.titlelocation', 'axes.titlepad', 'axes.titlesize', 'axes.titleweight', 'axes.titley', 'axes.unicode_minus', 'axes.xmargin', 'axes.ymargin', 'axes.zmargin', 'axes3d.automargin', 'axes3d.depthshade', 'axes3d.depthshade_minalpha', 'axes3d.grid', 'axes3d.mouserotationstyle', 'axes3d.trackballborder', 'axes3d.snap_rotation', 'axes3d.trackballsize', 'axes3d.xaxis.panecolor', 'axes3d.yaxis.panecolor', 'axes3d.zaxis.panecolor', 'backend', 'backend_fallback', 'boxplot.bootstrap', 'boxplot.boxprops.color', 'boxplot.boxprops.linestyle', 'boxplot.boxprops.linewidth', 'boxplot.capprops.color', 'boxplot.capprops.linestyle', 'boxplot.capprops.linewidth', 'boxplot.flierprops.color', 'boxplot.flierprops.linestyle', 'boxplot.flierprops.linewidth', 'boxplot.flierprops.marker', 'boxplot.flierprops.markeredgecolor', 'boxplot.flierprops.markeredgewidth', 'boxplot.flierprops.markerfacecolor', 'boxplot.flierprops.markersize', 'boxplot.meanline', 'boxplot.meanprops.color', 'boxplot.meanprops.linestyle', 'boxplot.meanprops.linewidth', 'boxplot.meanprops.marker', 'boxplot.meanprops.markeredgecolor', 'boxplot.meanprops.markerfacecolor', 'boxplot.meanprops.markersize', 'boxplot.medianprops.color', 'boxplot.medianprops.linestyle', 'boxplot.medianprops.linewidth', 'boxplot.notch', 'boxplot.patchartist', 'boxplot.showbox', 'boxplot.showcaps', 'boxplot.showfliers', 'boxplot.showmeans', 'boxplot.vertical', 'boxplot.whiskerprops.color', 'boxplot.whiskerprops.linestyle', 'boxplot.whiskerprops.linewidth', 'boxplot.whiskers', 'contour.algorithm', 'contour.corner_mask', 'contour.linewidth', 'contour.negative_linestyle', 'date.autoformatter.day', 'date.autoformatter.hour', 'date.autoformatter.microsecond', 'date.autoformatter.minute', 'date.autoformatter.month', 'date.autoformatter.second', 'date.autoformatter.year', 'date.converter', 'date.epoch', 'date.interval_multiples', 'docstring.hardcopy', 'errorbar.capsize', 'errorbar.capthick', 'errorbar.elinewidth', 'figure.autolayout', 'figure.constrained_layout.h_pad', 'figure.constrained_layout.hspace', 'figure.constrained_layout.use', 'figure.constrained_layout.w_pad', 'figure.constrained_layout.wspace', 'figure.dpi', 'figure.edgecolor', 'figure.facecolor', 'figure.figsize', 'figure.frameon', 'figure.hooks', 'figure.labelsize', 'figure.labelweight', 'figure.max_open_warning', 'figure.raise_window', 'figure.subplot.bottom', 'figure.subplot.hspace', 'figure.subplot.left', 'figure.subplot.right', 'figure.subplot.top', 'figure.subplot.wspace', 'figure.titlesize', 'figure.titleweight', 'font.cursive', 'font.enable_last_resort', 'font.family', 'font.fantasy', 'font.monospace', 'font.sans-serif', 'font.serif', 'font.size', 'font.stretch', 'font.style', 'font.variant', 'font.weight', 'grid.alpha', 'grid.color', 'grid.linestyle', 'grid.linewidth', 'grid.major.alpha', 'grid.major.color', 'grid.major.linestyle', 'grid.major.linewidth', 'grid.minor.alpha', 'grid.minor.color', 'grid.minor.linestyle', 'grid.minor.linewidth', 'hatch.color', 'hatch.linewidth', 'hist.bins', 'image.aspect', 'image.cmap', 'image.composite_image', 'image.interpolation', 'image.interpolation_stage', 'image.lut', 'image.origin', 'image.resample', 'interactive', 'keymap.back', 'keymap.copy', 'keymap.forward', 'keymap.fullscreen', 'keymap.grid', 'keymap.grid_minor', 'keymap.help', 'keymap.home', 'keymap.pan', 'keymap.quit', 'keymap.quit_all', 'keymap.save', 'keymap.xscale', 'keymap.yscale', 'keymap.zoom', 'legend.borderaxespad', 'legend.borderpad', 'legend.columnspacing', 'legend.edgecolor', 'legend.facecolor', 'legend.fancybox', 'legend.fontsize', 'legend.framealpha', 'legend.frameon', 'legend.handleheight', 'legend.handlelength', 'legend.handletextpad', 'legend.labelcolor', 'legend.labelspacing', 'legend.linewidth', 'legend.loc', 'legend.markerscale', 'legend.numpoints', 'legend.scatterpoints', 'legend.shadow', 'legend.title_fontsize', 'lines.antialiased', 'lines.color', 'lines.dash_capstyle', 'lines.dash_joinstyle', 'lines.dashdot_pattern', 'lines.dashed_pattern', 'lines.dotted_pattern', 'lines.linestyle', 'lines.linewidth', 'lines.marker', 'lines.markeredgecolor', 'lines.markeredgewidth', 'lines.markerfacecolor', 'lines.markersize', 'lines.scale_dashes', 'lines.solid_capstyle', 'lines.solid_joinstyle', 'macosx.window_mode', 'markers.fillstyle', 'mathtext.bf', 'mathtext.bfit', 'mathtext.cal', 'mathtext.default', 'mathtext.fallback', 'mathtext.fontset', 'mathtext.it', 'mathtext.rm', 'mathtext.sf', 'mathtext.tt', 'patch.antialiased', 'patch.edgecolor', 'patch.facecolor', 'patch.force_edgecolor', 'patch.linewidth', 'path.effects', 'path.simplify', 'path.simplify_threshold', 'path.sketch', 'path.snap', 'pcolor.shading', 'pcolormesh.snap', 'pdf.compression', 'pdf.fonttype', 'pdf.inheritcolor', 'pdf.use14corefonts', 'pgf.preamble', 'pgf.rcfonts', 'pgf.texsystem', 'polaraxes.grid', 'ps.distiller.res', 'ps.fonttype', 'ps.papersize', 'ps.useafm', 'ps.usedistiller', 'savefig.bbox', 'savefig.directory', 'savefig.dpi', 'savefig.edgecolor', 'savefig.facecolor', 'savefig.format', 'savefig.orientation', 'savefig.pad_inches', 'savefig.transparent', 'scatter.edgecolors', 'scatter.marker', 'svg.fonttype', 'svg.hashsalt', 'svg.id', 'svg.image_inline', 'text.antialiased', 'text.color', 'text.hinting', 'text.hinting_factor', 'text.kerning_factor', 'text.language', 'text.latex.engine', 'text.latex.preamble', 'text.parse_math', 'text.usetex', 'timezone', 'tk.window_focus', 'toolbar', 'webagg.address', 'webagg.open_in_browser', 'webagg.port', 'webagg.port_retries', 'xaxis.labellocation', 'xtick.alignment', 'xtick.bottom', 'xtick.color', 'xtick.direction', 'xtick.labelbottom', 'xtick.labelcolor', 'xtick.labelsize', 'xtick.labeltop', 'xtick.major.bottom', 'xtick.major.pad', 'xtick.major.size', 'xtick.major.top', 'xtick.major.width', 'xtick.minor.bottom', 'xtick.minor.ndivs', 'xtick.minor.pad', 'xtick.minor.size', 'xtick.minor.top', 'xtick.minor.visible', 'xtick.minor.width', 'xtick.top', 'yaxis.labellocation', 'ytick.alignment', 'ytick.color', 'ytick.direction', 'ytick.labelcolor', 'ytick.labelleft', 'ytick.labelright', 'ytick.labelsize', 'ytick.left', 'ytick.major.left', 'ytick.major.pad', 'ytick.major.right', 'ytick.major.size', 'ytick.major.width', 'ytick.minor.left', 'ytick.minor.ndivs', 'ytick.minor.pad', 'ytick.minor.right', 'ytick.minor.size', 'ytick.minor.visible', 'ytick.minor.width', 'ytick.right'], Any]"  [arg-type]
+ colour/plotting/common.py:322: error: Argument 1 to "update" of "MutableMapping" has incompatible type "dict[str, object]"; expected "SupportsKeysAndGetItem[Literal['agg.path.chunksize', 'animation.bitrate', 'animation.codec', 'animation.convert_args', 'animation.convert_path', 'animation.embed_limit', 'animation.ffmpeg_args', 'animation.ffmpeg_path', 'animation.frame_format', 'animation.html', 'animation.writer', 'axes.autolimit_mode', 'axes.axisbelow', 'axes.edgecolor', 'axes.facecolor', 'axes.formatter.limits', 'axes.formatter.min_exponent', 'axes.formatter.offset_threshold', 'axes.formatter.use_locale', 'axes.formatter.use_mathtext', 'axes.formatter.useoffset', 'axes.grid', 'axes.grid.axis', 'axes.grid.which', 'axes.labelcolor', 'axes.labelpad', 'axes.labelsize', 'axes.labelweight', 'axes.linewidth', 'axes.prop_cycle', 'axes.spines.bottom', 'axes.spines.left', 'axes.spines.right', 'axes.spines.top', 'axes.titlecolor', 'axes.titlelocation', 'axes.titlepad', 'axes.titlesize', 'axes.titleweight', 'axes.titley', 'axes.unicode_minus', 'axes.xmargin', 'axes.ymargin', 'axes.zmargin', 'axes3d.automargin', 'axes3d.depthshade', 'axes3d.depthshade_minalpha', 'axes3d.grid', 'axes3d.mouserotationstyle', 'axes3d.trackballborder', 'axes3d.snap_rotation', 'axes3d.trackballsize', 'axes3d.xaxis.panecolor', 'axes3d.yaxis.panecolor', 'axes3d.zaxis.panecolor', 'backend', 'backend_fallback', 'boxplot.bootstrap', 'boxplot.boxprops.color', 'boxplot.boxprops.linestyle', 'boxplot.boxprops.linewidth', 'boxplot.capprops.color', 'boxplot.capprops.linestyle', 'boxplot.capprops.linewidth', 'boxplot.flierprops.color', 'boxplot.flierprops.linestyle', 'boxplot.flierprops.linewidth', 'boxplot.flierprops.marker', 'boxplot.flierprops.markeredgecolor', 'boxplot.flierprops.markeredgewidth', 'boxplot.flierprops.markerfacecolor', 'boxplot.flierprops.markersize', 'boxplot.meanline', 'boxplot.meanprops.color', 'boxplot.meanprops.linestyle', 'boxplot.meanprops.linewidth', 'boxplot.meanprops.marker', 'boxplot.meanprops.markeredgecolor', 'boxplot.meanprops.markerfacecolor', 'boxplot.meanprops.markersize', 'boxplot.medianprops.color', 'boxplot.medianprops.linestyle', 'boxplot.medianprops.linewidth', 'boxplot.notch', 'boxplot.patchartist', 'boxplot.showbox', 'boxplot.showcaps', 'boxplot.showfliers', 'boxplot.showmeans', 'boxplot.vertical', 'boxplot.whiskerprops.color', 'boxplot.whiskerprops.linestyle', 'boxplot.whiskerprops.linewidth', 'boxplot.whiskers', 'contour.algorithm', 'contour.corner_mask', 'contour.linewidth', 'contour.negative_linestyle', 'date.autoformatter.day', 'date.autoformatter.hour', 'date.autoformatter.microsecond', 'date.autoformatter.minute', 'date.autoformatter.month', 'date.autoformatter.second', 'date.autoformatter.year', 'date.converter', 'date.epoch', 'date.interval_multiples', 'docstring.hardcopy', 'errorbar.capsize', 'errorbar.capthick', 'errorbar.elinewidth', 'figure.autolayout', 'figure.constrained_layout.h_pad', 'figure.constrained_layout.hspace', 'figure.constrained_layout.use', 'figure.constrained_layout.w_pad', 'figure.constrained_layout.wspace', 'figure.dpi', 'figure.edgecolor', 'figure.facecolor', 'figure.figsize', 'figure.frameon', 'figure.hooks', 'figure.labelsize', 'figure.labelweight', 'figure.max_open_warning', 'figure.raise_window', 'figure.subplot.bottom', 'figure.subplot.hspace', 'figure.subplot.left', 'figure.subplot.right', 'figure.subplot.top', 'figure.subplot.wspace', 'figure.titlesize', 'figure.titleweight', 'font.cursive', 'font.enable_last_resort', 'font.family', 'font.fantasy', 'font.monospace', 'font.sans-serif', 'font.serif', 'font.size', 'font.stretch', 'font.style', 'font.variant', 'font.weight', 'grid.alpha', 'grid.color', 'grid.linestyle', 'grid.linewidth', 'grid.major.alpha', 'grid.major.color', 'grid.major.linestyle', 'grid.major.linewidth', 'grid.minor.alpha', 'grid.minor.color', 'grid.minor.linestyle', 'grid.minor.linewidth', 'hatch.color', 'hatch.linewidth', 'hist.bins', 'image.aspect', 'image.cmap', 'image.composite_image', 'image.interpolation', 'image.interpolation_stage', 'image.lut', 'image.origin', 'image.resample', 'interactive', 'keymap.back', 'keymap.copy', 'keymap.forward', 'keymap.fullscreen', 'keymap.grid', 'keymap.grid_minor', 'keymap.help', 'keymap.home', 'keymap.pan', 'keymap.quit', 'keymap.quit_all', 'keymap.save', 'keymap.xscale', 'keymap.yscale', 'keymap.zoom', 'legend.borderaxespad', 'legend.borderpad', 'legend.columnspacing', 'legend.edgecolor', 'legend.facecolor', 'legend.fancybox', 'legend.fontsize', 'legend.framealpha', 'legend.frameon', 'legend.handleheight', 'legend.handlelength', 'legend.handletextpad', 'legend.labelcolor', 'legend.labelspacing', 'legend.linewidth', 'legend.loc', 'legend.markerscale', 'legend.numpoints', 'legend.scatterpoints', 'legend.shadow', 'legend.title_fontsize', 'lines.antialiased', 'lines.color', 'lines.dash_capstyle', 'lines.dash_joinstyle', 'lines.dashdot_pattern', 'lines.dashed_pattern', 'lines.dotted_pattern', 'lines.linestyle', 'lines.linewidth', 'lines.marker', 'lines.markeredgecolor', 'lines.markeredgewidth', 'lines.markerfacecolor', 'lines.markersize', 'lines.scale_dashes', 'lines.solid_capstyle', 'lines.solid_joinstyle', 'macosx.window_mode', 'markers.fillstyle', 'mathtext.bf', 'mathtext.bfit', 'mathtext.cal', 'mathtext.default', 'mathtext.fallback', 'mathtext.fontset', 'mathtext.it', 'mathtext.rm', 'mathtext.sf', 'mathtext.tt', 'patch.antialiased', 'patch.edgecolor', 'patch.facecolor', 'patch.force_edgecolor', 'patch.linewidth', 'path.effects', 'path.simplify', 'path.simplify_threshold', 'path.sketch', 'path.snap', 'pcolor.shading', 'pcolormesh.snap', 'pdf.compression', 'pdf.fonttype', 'pdf.inheritcolor', 'pdf.use14corefonts', 'pgf.preamble', 'pgf.rcfonts', 'pgf.texsystem', 'polaraxes.grid', 'ps.distiller.res', 'ps.fonttype', 'ps.papersize', 'ps.useafm', 'ps.usedistiller', 'savefig.bbox', 'savefig.directory', 'savefig.dpi', 'savefig.edgecolor', 'savefig.facecolor', 'savefig.format', 'savefig.orientation', 'savefig.pad_inches', 'savefig.transparent', 'scatter.edgecolors', 'scatter.marker', 'svg.fonttype', 'svg.hashsalt', 'svg.id', 'svg.image_inline', 'text.antialiased', 'text.color', 'text.hinting', 'text.hinting_factor', 'text.kerning_factor', 'text.language', 'text.latex.engine', 'text.latex.preamble', 'text.parse_math', 'text.usetex', 'timezone', 'tk.window_focus', 'toolbar', 'webagg.address', 'webagg.open_in_browser', 'webagg.port', 'webagg.port_retries', 'xaxis.labellocation', 'xtick.alignment', 'xtick.bottom', 'xtick.color', 'xtick.direction', 'xtick.labelbottom', 'xtick.labelcolor', 'xtick.labelsize', 'xtick.labeltop', 'xtick.major.bottom', 'xtick.major.pad', 'xtick.major.size', 'xtick.major.top', 'xtick.major.width', 'xtick.minor.bottom', 'xtick.minor.ndivs', 'xtick.minor.pad', 'xtick.minor.size', 'xtick.minor.top', 'xtick.minor.visible', 'xtick.minor.width', 'xtick.top', 'yaxis.labellocation', 'ytick.alignment', 'ytick.color', 'ytick.direction', 'ytick.labelcolor', 'ytick.labelleft', 'ytick.labelright', 'ytick.labelsize', 'ytick.left', 'ytick.major.left', 'ytick.major.pad', 'ytick.major.right', 'ytick.major.size', 'ytick.major.width', 'ytick.minor.left', 'ytick.minor.ndivs', 'ytick.minor.pad', 'ytick.minor.right', 'ytick.minor.size', 'ytick.minor.visible', 'ytick.minor.width', 'ytick.right'], Any]"  [arg-type]
+ colour/plotting/common.py:1432: error: Argument 6 to "text" of "Axes" has incompatible type "**dict[str, float | Any]"; expected "dict[str, Any] | None"  [arg-type]
+ colour/plotting/common.py:1432: note: "dict" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
+ colour/plotting/common.py:1432: note: Consider using "Mapping" instead, which is covariant in the value type
+ colour/plotting/common.py:1732: error: Argument 2 to "imshow" of "Axes" has incompatible type "**dict[str, object]"; expected "str | Colormap | None"  [arg-type]
+ colour/plotting/common.py:1732: error: Argument 2 to "imshow" of "Axes" has incompatible type "**dict[str, object]"; expected "str | Normalize | None"  [arg-type]

... (truncated 81 lines) ...

altair (https://github.com/vega/altair)
+ altair/vegalite/v6/api.py:2768: error: Argument 1 to "AggregatedFieldDef" has incompatible type "**dict[str, str | Any | Any]"; expected "SchemaBase | Literal['argmax', 'argmin', 'average', 'count', 'distinct', 'max', 'mean', 'median', 'min', 'missing', 'product', 'q1', 'q3', 'ci0', 'ci1', 'stderr', 'stdev', 'stdevp', 'sum', 'valid', 'values', 'variance', 'variancep', 'exponential', 'exponentialb'] | UndefinedType"  [arg-type]
+ altair/vegalite/v6/api.py:3101: error: Argument 1 to "JoinAggregateFieldDef" has incompatible type "**dict[str, str | Any | Any]"; expected "SchemaBase | Literal['argmax', 'argmin', 'average', 'count', 'distinct', 'max', 'mean', 'median', 'min', 'missing', 'product', 'q1', 'q3', 'ci0', 'ci1', 'stderr', 'stdev', 'stdevp', 'sum', 'valid', 'values', 'variance', 'variancep', 'exponential', 'exponentialb'] | UndefinedType"  [arg-type]

zulip (https://github.com/zulip/zulip)
+ zerver/data_import/slack.py:1566: error: Unsupported target for indexed assignment ("dict[str, Any] | bool | Any")  [index]
+ zerver/views/video_calls.py:512: error: Argument "headers" to "post" of "Session" has incompatible type "dict[str, str | None]"; expected "Mapping[str, str | bytes] | None"  [arg-type]
+ zerver/tests/test_push_notifications.py:590: error: Need type annotation for "payload"  [var-annotated]
+ zerver/data_import/rocketchat.py:562: error: Argument "size" to "UploadRecordData" has incompatible type "float | Any"; expected "int"  [arg-type]
+ zerver/data_import/mattermost.py:487: error: Argument "size" to "UploadRecordData" has incompatible type "float | int | Any"; expected "int"  [arg-type]

scrapy (https://github.com/scrapy/scrapy)
- scrapy/utils/url.py:206: error: Returning Any from function declared to return "str"  [no-any-return]
- scrapy/http/request/form.py:164: error: Returning Any from function declared to return "str"  [no-any-return]
+ scrapy/statscollectors.py:87: error: Value of type variable "SupportsRichComparisonT" of "max" cannot be "Any | Any | None"  [type-var]
+ scrapy/statscollectors.py:92: error: Value of type variable "SupportsRichComparisonT" of "min" cannot be "Any | Any | None"  [type-var]
+ tests/test_http2_client_protocol.py:112: error: Need type annotation for "response"  [var-annotated]
+ tests/test_http2_client_protocol.py:118: error: Unsupported target for indexed assignment ("str | dict[Any, Any] | Any")  [index]

core (https://github.com/home-assistant/core)
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for > ("bool" and "str")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for > ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for > ("str" and "bool")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for > ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for < ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported operand types for < ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: error: Unsupported left operand type for > ("None")  [operator]
+ homeassistant/components/gtfs/sensor.py:426: note: Both left and right operands are unions
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for < ("bool" and "str")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for < ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for < ("str" and "bool")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for < ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for > ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported operand types for > ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: error: Unsupported left operand type for < ("None")  [operator]
+ homeassistant/components/gtfs/sensor.py:438: note: Both left and right operands are unions
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for < ("bool" and "str")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for < ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for < ("str" and "bool")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for < ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for > ("bool" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported operand types for > ("str" and "None")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: error: Unsupported left operand type for < ("None")  [operator]
+ homeassistant/components/gtfs/sensor.py:445: note: Both left and right operands are unions
+ homeassistant/components/lovelace/__init__.py:320: error: Argument 3 to "async_register_built_in_panel" has incompatible type "**dict[str, bool | dict[str, str] | str | Any | None]"; expected "str | None"  [arg-type]
+ homeassistant/components/lovelace/__init__.py:320: error: Argument 3 to "async_register_built_in_panel" has incompatible type "**dict[str, bool | dict[str, str] | str | Any | None]"; expected "bool"  [arg-type]
+ homeassistant/components/lovelace/__init__.py:320: error: Argument 3 to "async_register_built_in_panel" has incompatible type "**dict[str, bool | dict[str, str] | str | Any | None]"; expected "dict[str, Any] | None"  [arg-type]
+ homeassistant/components/lovelace/__init__.py:320: note: "dict" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
+ homeassistant/components/lovelace/__init__.py:320: note: Consider using "Mapping" instead, which is covariant in the value type
+ homeassistant/components/assist_satellite/services.py:206: error: Argument 1 to "async_internal_ask_question" of "AssistSatelliteEntity" has incompatible type "**dict[str, Any | Any | None]"; expected "bool"  [arg-type]
+ homeassistant/components/assist_satellite/services.py:206: error: Argument 1 to "async_internal_ask_question" of "AssistSatelliteEntity" has incompatible type "**dict[str, Any | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/counter/entity.py:96: error: Value of type variable "SupportsRichComparisonT" of "max" cannot be "int | Any | None"  [type-var]
+ homeassistant/components/counter/entity.py:98: error: Value of type variable "SupportsRichComparisonT" of "min" cannot be "int | Any | None"  [type-var]
+ homeassistant/components/isy994/select.py:96: error: Argument 1 to "ISYRampRateSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/isy994/select.py:96: error: Argument 1 to "ISYRampRateSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "EntityDescription"  [arg-type]
+ homeassistant/components/isy994/select.py:96: error: Argument 1 to "ISYRampRateSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "DeviceInfo | None"  [arg-type]
+ homeassistant/components/isy994/select.py:99: error: Argument 1 to "ISYBacklightSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/isy994/select.py:99: error: Argument 1 to "ISYBacklightSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "SelectEntityDescription"  [arg-type]
+ homeassistant/components/isy994/select.py:99: error: Argument 1 to "ISYBacklightSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "DeviceInfo | None"  [arg-type]
+ homeassistant/components/isy994/select.py:102: error: Argument 1 to "ISYAuxControlIndexSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/isy994/select.py:102: error: Argument 1 to "ISYAuxControlIndexSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "EntityDescription"  [arg-type]
+ homeassistant/components/isy994/select.py:102: error: Argument 1 to "ISYAuxControlIndexSelectEntity" has incompatible type "**dict[str, SelectEntityDescription | str | DeviceInfo | Any | None]"; expected "DeviceInfo | None"  [arg-type]
+ homeassistant/components/nederlandse_spoorwegen/diagnostics.py:93: error: Incompatible types in assignment (expression has type "dict[str, int]", target has type "dict[str, str | None] | dict[str, str | Any | Any | Any | None] | None")  [assignment]
+ homeassistant/components/isy994/number.py:130: error: Argument 1 to "ISYBacklightNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/isy994/number.py:130: error: Argument 1 to "ISYBacklightNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "NumberEntityDescription"  [arg-type]
+ homeassistant/components/isy994/number.py:130: error: Argument 1 to "ISYBacklightNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "DeviceInfo | None"  [arg-type]
+ homeassistant/components/isy994/number.py:132: error: Argument 1 to "ISYAuxControlNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "str"  [arg-type]
+ homeassistant/components/isy994/number.py:132: error: Argument 1 to "ISYAuxControlNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "EntityDescription"  [arg-type]
+ homeassistant/components/isy994/number.py:132: error: Argument 1 to "ISYAuxControlNumberEntity" has incompatible type "**dict[str, NumberEntityDescription | str | DeviceInfo | Any | None]"; expected "DeviceInfo | None"  [arg-type]
+ homeassistant/components/icloud/account.py:1111: error: Incompatible return value type (got "float | Any | None", expected "str | None")  [return-value]
+ homeassistant/components/seventeentrack/coordinator.py:75: error: Need type annotation for "summary_dict" (hint: "summary_dict: dict[<type>, <type>] = ...")  [var-annotated]
+ homeassistant/components/satel_integra/config_flow.py:235: error: Argument 1 to "test_connection" of "SatelConfigFlow" has incompatible type "Any | None"; expected "str"  [arg-type]
+ homeassistant/components/satel_integra/config_flow.py:236: error: Argument 2 to "test_connection" of "SatelConfigFlow" has incompatible type "Any | None"; expected "int"  [arg-type]
+ homeassistant/components/satel_integra/config_flow.py:248: error: Argument "title" to "async_update_reload_and_abort" of "ConfigFlow" has incompatible type "Any | None"; expected "str | UndefinedType"  [arg-type]
+ homeassistant/components/forked_daapd/config_flow.py:197: error: Incompatible types (expression has type "dict[str, str | int | Any | None]", TypedDict item "title_placeholders" has type "Mapping[str, str]")  [typeddict-item]
+ homeassistant/components/generic/config_flow.py:461: error: Unsupported target for indexed assignment ("str | Any | Any | None")  [index]
- homeassistant/components/flux_led/number.py:183: error: Returning Any from function declared to return "int"  [no-any-return]
- homeassistant/components/flux_led/number.py:213: error: Returning Any from function declared to return "int"  [no-any-return]
- homeassistant/components/flux_led/number.py:251: error: Returning Any from function declared to return "int"  [no-any-return]
- homeassistant/components/flux_led/number.py:282: error: Returning Any from function declared to return "int"  [no-any-return]
+ homeassistant/components/risco/config_flow.py:271: error: Value of type "object" is not indexable  [index]
+ homeassistant/components/risco/config_flow.py:292: error: "object" has no attribute "values"  [attr-defined]
+ homeassistant/components/risco/config_flow.py:298: error: Value of type "object" is not indexable  [index]
+ homeassistant/components/risco/config_flow.py:300: error: "object" has no attribute "get"  [attr-defined]
+ homeassistant/components/modbus/cover.py:100: error: Argument 1 to "_set_attr_state" of "ModbusCover" has incompatible type "Any | Any | Any | Any | None"; expected "str | bool | int"  [arg-type]
+ homeassistant/components/solaredge_modbus/config_flow.py:97: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]"  [index]
+ homeassistant/components/neopool/config_flow.py:99: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]"  [index]
+ homeassistant/components/p1_monitor/diagnostics.py:41: error: Unsupported target for indexed assignment ("object")  [index]
+ homeassistant/components/rainforest_raven/diagnostics.py:22: error: Need type annotation for "redacted"  [var-annotated]
+ homeassistant/components/amberelectric/sensor.py:134: error: Need type annotation for "data"  [var-annotated]
+ homeassistant/components/open_router/entity.py:376: error: Invalid index type "int" for "dict[str, Any]"; expected type "str"  [index]
+ homeassistant/components/open_router/entity.py:376: error: Invalid index type "int" for "dict[str, str]"; expected type "str"  [index]
+ homeassistant/components/open_router/entity.py:414: error: Item "dict[str, Any]" of "dict[str, Any] | dict[str, str] | str | Any" has no attribute "extend"  [union-attr]
+ homeassistant/components/open_router/entity.py:414: error: Item "dict[str, str]" of "dict[str, Any] | dict[str, str] | str | Any" has no attribute "extend"  [union-attr]
+ homeassistant/components/open_router/entity.py:414: error: Item "str" of "dict[str, Any] | dict[str, str] | str | Any" has no attribute "extend"  [union-attr]
+ homeassistant/components/scrape/__init__.py:160: error: Need type annotation for "subentry_config"  [var-annotated]
+ homeassistant/components/homematicip_cloud/config_flow.py:117: error: Argument 2 to "HomematicipAuth" has incompatible type "dict[str, Any | Any | None]"; expected "dict[str, str]"  [arg-type]
+ homeassistant/components/litellm/entity.py:203: error: Item "str" of "str | Any" has no attribute "extend"  [union-attr]
- homeassistant/components/lyngdorf/media_player.py:110: error: Returning Any from function declared to return "float"  [no-any-return]
+ homeassistant/components/goodwe/number.py:177: error: Value of type variable "SupportsRichComparisonT" of "max" cannot be "float | Any | None"  [type-var]
+ homeassistant/components/goodwe/number.py:177: error: Incompatible types in assignment (expression has type "float | Any | None", variable has type "float")  [assignment]
+ homeassistant/components/zha/__init__.py:361: error: Invalid index type "dict[Any, Any] | Any" for "dict[str, int]"; expected type "str"  [index]
+ homeassistant/components/netgear/config_flow.py:138: error: Argument "description_placeholders" to "async_show_form" of "ConfigFlow" has incompatible type "dict[str, bool | Any]"; expected "Mapping[str, str] | None"  [arg-type]

egglog-python (https://github.com/egraphs-good/egglog-python)
+ python/egglog/ipython_magic.py:39: error: Argument 1 to "join" of "str" has incompatible type "list[PrintFunctionSize | PrintAllFunctionsSize | ExtractVariants | ExtractBest | ProveExistsOutput | OverallStatistics | RunScheduleOutput | PrintFunctionOutput | UserDefinedOutput] | Any"; expected "Iterable[str]"  [arg-type]
+ python/egglog/runtime.py:587: error: Argument 2 to "substitute_typevars_try_function" of "TypeConstraintSolver" has incompatible type "object"; expected "Callable[..., Any]"  [arg-type]

discord.py (https://github.com/Rapptz/discord.py)
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "Literal[True]"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "str"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "Iterable[str]"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "ClientWSTimeout | _SENTINEL"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "float | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "bool"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "BasicAuth | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "str | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "str | Mapping[str, str | SupportsInt | float | Sequence[str | SupportsInt | float]] | Sequence[tuple[str, str | SupportsInt | float | Sequence[str | SupportsInt | float]]] | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "Mapping[str, str] | Mapping[istr, str] | CIMultiDict[str] | CIMultiDictProxy[str] | Iterable[tuple[str | istr, str]] | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "str | URL | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "SSLContext | bool | Fingerprint"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "bool | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "bytes | None"  [arg-type]
+ discord/http.py:574: error: Argument 2 to "ws_connect" of "ClientSession" has incompatible type "**dict[str, dict[str, str] | int | BasicAuth | str | Any | None]"; expected "SSLContext | None"  [arg-type]

... (truncated 568 lines) ...```

@hauntsaninja

Copy link
Copy Markdown
Collaborator

I had a feeling that dict would be painful

@ilevkivskyi

Copy link
Copy Markdown
Member Author

Yes, this is essentially #5382. I will take a look at actual code examples, we may fix most cases with something similar to last_known_value for dict literals

@ilevkivskyi

Copy link
Copy Markdown
Member Author

Or alternatively we can special-case dict: say if at least one value is Any, the whole thing is Any.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

⌂ Proxy